首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >单元测试-数据库耦合应用程序

单元测试-数据库耦合应用程序
EN

Software Engineering用户
提问于 2012-03-04 00:53:14
回答 8查看 3.6K关注 0票数 17

在单元测试中,集成到与数据库紧密耦合的应用程序中的模型的最佳方法是什么?

这里的具体场景是购物车--我希望能够测试从购物车中添加、删除和检索项目,以及定价逻辑等。在我看来,这都需要数据库访问,尽管我已经读了好几遍应该避免数据库访问。

EN

回答 8

Software Engineering用户

回答已采纳

发布于 2012-03-04 01:07:06

依赖注入是处理此问题的一种方法。您可以建立一个模拟购物车的测试数据库,甚至可以编写一些“确认”客户事务的代码。然后在运行时,您的软件将选择要连接到的组件。

只是在测试期间不要连接到生产数据库!

票数 13
EN

Software Engineering用户

发布于 2012-03-04 03:17:14

在单元测试中,您必须定义要测试的内容的边界。单元测试不同于集成测试。如果定价逻辑独立于购物车内容,那么就分别测试它。如果不是这种情况,并且所有模块都是紧密耦合的,那么构建一个尽可能多地模拟生产的测试环境,并使用它。我不相信捷径和模拟从长远来看是没有帮助的。

票数 5
EN

Software Engineering用户

发布于 2012-03-04 05:11:40

模型不应该依赖于(具体的) DB。如果它只知道传递给模型的抽象DB (读“接口”),那么您可以用模拟对象替换DB。

面向对象程序设计中,模拟对象是模拟对象,它们以受控的方式模拟真实对象的行为。程序员通常创建一个模拟对象来测试其他对象的行为,就像汽车设计者使用碰撞试验假人在车辆撞击中的动态行为模拟一样。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/138238

复制
相关文章
软考高级架构师:AI 通俗讲解非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合
耦合是一个计算机编程中的概念,通常用来描述程序中不同部分之间的相互依赖程度。不同类型的耦合反映了不同的依赖关系和交互方式。理解这些耦合的类型有助于改进软件设计,使其更易于理解、维护和扩展。下面我会一一解释你提到的各种耦合类型:
明明如月学长
2024/05/25
5610
软考高级:耦合分类(内容耦合、公共耦合、外部耦合等)概念和例题
耦合是衡量模块间相互依赖关系紧密程度的一个指标,在软件工程中,通常希望模块之间的耦合度越低越好,以提高代码的可维护性和可重用性。下面我将用表格的形式,对您提到的耦合分类进行讲解,并为每种耦合提供一小段示例代码(使用Java语言或伪代码)以帮助理解。
明明如月学长
2024/05/24
3510
AC耦合电容
SATA1.0:1.5 Gb/s SATA2.0:3 Gb/s SATA3.0:6 Gb/s(600 MB/s) per port
徐师兄
2022/08/29
6850
AC耦合电容
等离子清洗机中电感耦合和电容耦合
在小型等离子清洗机的工作原理中,一直有两种工作原理:电容耦合式(不锈钢腔体)和电感耦合式(石英玻璃腔体),针对两种工作方式的差异,我们尝试做进一步的说明
用户10579111
2023/05/26
3230
等离子清洗机中电感耦合和电容耦合
人脑中分离的相位耦合和幅度耦合模式
神经元振荡的耦合可能反映和促进神经元群体之间的交流,有两种主要的神经元耦合模式:相位耦合和幅度耦合。从理论上讲,这两种耦合模式是独立的,但到目前为止,它们之间的神经元联系尚不清楚。本研究中我们结合脑磁图(MEG)、源重建和模拟来系统地比较人脑中大脑皮层的幅度耦合和相位耦合模式。我们发现这两种耦合模式在很宽的频率范围和大部分大脑皮层内存在差异。我们的结果表明,皮层的相位和幅度耦合模式是非冗余的,这可能部分反映了不同的神经机制。此外,我们的发现突出并阐明了幅度耦合指标的复合性。
悦影科技
2021/11/29
6780
端面耦合器
上一篇笔记 光栅耦合器 主要介绍了光栅耦合器的基本原理与优化方案,这一篇笔记介绍另外一种常用的耦合器——端面耦合器 (edge coupler)。
光学小豆芽
2020/08/13
6.5K0
JustMock .NET单元测试利器(三)用JustMock测试你的应用程序
用JustMock测试你的应用程序 本主题将指导您通过几个简单的步骤来使用Telerik®JustMock轻松测试您的应用程序。您将理解一个简单的原理,称为Arrange / Act / Assert,并熟悉框架中的核心方法和属性,这些方法和属性在最常见的测试场景中使用 为了说明下一个例子中JustMock的用法,我们将使用一个样本仓库(warehouse)和一个依赖订单对象(Order)。仓库持有不同产品的库存。订单包含产品和数量。 仓库界面和订单类看起来像这样: publicdelegatevoidPr
码农阿宇
2018/04/18
1.1K0
光栅耦合器
关于光栅在集成光路(PIC)中的不同应用,在 集成光路中的光栅 中已经讨论过。这一篇笔记再重点聊一聊光栅耦合器(grating coupler,以下简称GC)。
光学小豆芽
2020/08/13
10.3K0
语义耦合(Semantic Coupling)
发布于 2018-02-05 10:38 更新于 2018-06-30 07:01
walterlv
2018/09/18
8050
光纤耦合器制作-光纤耦合器的制作方法
  1.一种光纤耦合器,其特征在于,适于耦合二光纤,该光纤耦合器包含一基座以及一透镜,该基座具有一容置腔以及二通光孔,该二通光孔分别连接于该容置腔的相对二侧,该透镜位于该容置腔并介于该二通光孔之间,该二光纤适于分别设置于该透镜的相对二侧并分别对准于该二通光孔,且该二光纤的核心与该透镜的光轴重合;
宜轩
2022/12/26
3900
光纤耦合器图片-一种新型光纤耦合器
  (19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 2.1(22)申请日 2021.07.13(71)申请人 中北大学地址 030051 山西省太原市尖草坪区学院路3号(72)发明人 周彦汝刘文耀邢恩博唐军刘俊(74)专利代理机构 太原新航路知识产权代理事务所(特殊普通合伙) 14112代理人 王勇(51)Int.Cl.G02B 6/255 (2006.01)G02B 6/27 (2006.01)G02B 6/293 (2006.01)G02B 6/02 (2006.01) (54)发明名称一种新型[光纤耦合器]1摘要本发明涉及光纤耦合器,具体是一种新型光纤耦合器。本发明解决了传统光纤耦合器导致光纤环形谐振腔集成度低、品质因数低的问题。一种新型光纤耦合器,包括沿光路从左向右依次设置的第一双纤毛细管、第一透镜、起偏检偏分光单元、第二透镜、第二双纤毛细管;第一双纤毛细管的轴线和第一透镜的轴线相互重合,且第一双纤毛细管的右端面和第一透镜的左端面为相互配合的斜面;第一双纤毛细管内分别穿设有第一保偏光纤和第一光子晶体光纤;第二双纤毛细管的轴线和第二透镜的轴线相互重合,且第二双纤毛细管的左端面和第二透镜的右端面为相互配合的斜面;第二双纤毛细管内分别穿设有第二保偏光纤和第二光子晶体光纤。
宜轩
2022/12/29
3310
Go 单元测试之Mysql数据库集成测试
sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作,并且可以验证 SQL 语句的执行情况,非常适合用于单元测试中。
贾维斯Echo
2024/04/18
1790
Go 单元测试之Mysql数据库集成测试
耦合必然性
最近学到一个词“耦合创伤应激障碍”,讲的是程序员对耦合条件反射式恐惧,对于这个新词,我再重新理解一篇
码农戏码
2021/08/25
3090
python中的单元测试和数据库测试
登录测试 被测试的代码逻辑 @app.route('/login', methods=['POST']) def login(): username = request.form.get('username') password = request.form.get('password') # 判断参数是否为空 if not all([username, password]): result = { "errcode": -2,
py3study
2020/01/07
9390
光纤耦合器制作-光耦合器基础知识!
  所有光耦合器都由两个元件组成:光源(几乎总是发光二极管(LED))和光电传感器(通常是光敏电阻、光电二极管、光电晶体管、可控硅整流器(SCR)或三端双向可控硅。这两个元件都由介电(非导电)势垒隔开。当输入电流施加到LED上时,它打开并发出红外光;然后,光电传感器检测到该光,并允许电流流过电路的输出侧。相反,当LED熄灭时,没有电流流过光电传感器。通过这种方法,两个流动的电流被电隔离。
宜轩
2022/12/26
7040
使用Django单元测试与集成测试保障Web应用程序代码质量
在开发Web应用程序时,保证代码质量至关重要。Django作为一个流行的Python Web框架,提供了强大的测试工具来确保代码的可靠性和稳定性。本文将介绍如何利用Django的单元测试和集成测试来保障代码质量,以及它们的使用方法和最佳实践。
一键难忘
2024/07/05
3520
【单元测试】--编写单元测试
这是一个简单的NUnit单元测试的示例,展示了如何创建测试项目,编写测试用例,运行测试以及查看测试结果。随着你的项目复杂性的增加,你可以编写更多的测试用例来确保你的代码按预期工作。
喵叔
2023/10/22
4490
软件工程耦合详解
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
里克贝斯
2021/05/21
1.8K0
使用C#开发数据库应用程序
第一章 用Hello ACCP.NET快速热身(一) 1-1.进入C#世界 a.第一个C#程序 (1)新建项目【项目:project】 (2)生成解决方案【生成:build,解决方案:solution】 (3)调试【调试:debug】 b.认识控制台应用程序文件夹结构 Program.cs .cs作为扩展名 HelloACCP.exe 是编译后生成的文件,可以直接执行 经验:视图-解决方案资源管理器 也可以使用快捷键Ctrl+Alt+L 工具-选项-项目
用户1112962
2018/07/04
6K0
数据管理
与系统中其他变更一样,作为构建、部署、测试和发布过程的一部分,任何对数据库的修改都应该通过自动化过程来管理。也就是说,数据库的初始化和所有的迁移都需要脚本化,并提交到版本控制库中。无论是为开发人员创建一个新的本地数据库,还是为测试人员升级系统集成测试环境,或者作为发布过程的一部分迁移生产环境中的数据库,都应该能够使用这些脚本来管理交付流程中的每个数据库。
新亮
2022/12/05
9490
数据管理

相似问题

这个单元测试是否与实现紧密耦合?

30

逻辑与数据紧密耦合的单元测试系统

40

不耦合到实现细节的单元测试行为

20

共享数据库与紧耦合消息模型

10

如何将此耦合应用程序解耦?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文