问题标签 [mocking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2884 浏览

vb.net - VB.NET 最好的模拟框架是什么?

在语法方面和能力方面最好的模拟框架是什么?

我的问题:现在大多数模拟框架都使用 lambda 表达式,这在 VB.NET 中编写起来真的很难看,那么有没有框架在没有 lambda 的情况下具有良好的语法或具有不需要 lambda 的流畅语法?

0 投票
2 回答
169 浏览

exception-handling - 强制应用程序抛出特定异常

我们正在替换我们应用程序中的异常处理系统以符合 Vista 认证,但问题是如何强制抛出某些异常,以便我们可以检查响应。

不幸的是,整个应用程序的编写没有考虑适当的分层、抽象或隔离原则,并且在时间范围内引入模拟和单元测试是不可能的:(

我的想法是通过编译器指令或通过尊重配置文件中的值来引入将引发特定异常的代码。然后我们可以正常运行应用程序并手动检查异常是如何处理的。

只是想我会把它放在那里,看看 SO 社区是否能想到更好的东西!

干杯

0 投票
2 回答
2098 浏览

.net - 起订量 - 好的示例应用程序

我知道有几个关于起订量教程的问题。但我想知道是否有任何示例应用程序在使用 ado.net 的 n 层业务应用程序的上下文中使用 moq。

我觉得 tutes 很好,但它们似乎并没有把所有东西都放在一起。因此,我正在寻找一个能够将全貌结合在一起的示例应用程序。

另外,我认为缺少专门处理模拟和测试数据访问层中的逻辑的示例。

干杯安东尼

0 投票
4 回答
3193 浏览

unit-testing - 数据驱动的单元测试

测试依赖于数据库数据的 API 的最佳实践是什么?在将单元测试作为构建过程的一部分运行的“持续集成”环境中,我需要注意哪些问题?我的意思是您会将您的数据库部署为构建脚本的一部分(可能会运行您的安装程序)还是应该使用硬编码数据[使用带有 XML 的 MSTest 数据驱动单元测试]?

我知道我可以模拟业务逻辑层的数据层,但是如果我在 DAL 中的 SQL 语句有问题怎么办?我确实需要访问数据库,对吗?

嗯......这是一个问题的洪流:)......想法?

0 投票
1 回答
1556 浏览

c# - 如何注入 WebRequest/Response 依赖项?

我正在努力分离以下代码中的依赖项:

本质上,我想在不依赖外部网站请求的情况下进行单元测试。

解决这个问题的最佳方法是什么?

0 投票
1 回答
1679 浏览

unit-testing - 模拟对象、nUnit、调用日志和 log4net

一个很常见的单元测试场景如下:

... 使用 MockFoo 通过仅将字符串附加到调用日志来实现 IFoo 接口。它需要在模拟中使用 callLog 进行大量代码处理。

使用 log4net 收集通话记录是个好主意吗?

0 投票
7 回答
4145 浏览

c - 如何在没有继承的情况下模拟对象(在 C 中)?

我们在工作中为我们的低级网络代码使用一个简单的对象模型,其中结构指针被传递给伪装成方法的函数。我继承了大部分代码,这些代码充其量是由具有合格 C/C++ 经验的顾问编写的,并且我花了很多个深夜试图将代码重构为类似于合理结构的东西。

现在我想对代码进行单元测试,但考虑到我们选择的对象模型,我不知道如何模拟对象。请参见下面的示例:

示例标题(foo.h):

示例源(foo.c):

在上面的示例中,我想模拟TcpSocket对象,以便我可以将“foo_transmit_command”带入单元测试,但我不确定如何在没有继承的情况下进行此操作。我真的不想重新设计代码以使用 vtables,除非我真的必须这样做。也许有比嘲笑更好的方法?

我的测试经验主要来自C++,我有点害怕我可能会把自己画到这里来。我将非常感谢更有经验的测试人员的任何建议。

编辑:
就像 Richard Quirk 指出的那样,我想要覆盖的实际上是对“tcp_socket_send”的调用,我更愿意在链接测试时不从库中删除真正的 tcp_socket_send 符号,因为它是由其他测试调用的相同的二进制。

我开始认为这个问题没有明显的解决方案..

0 投票
6 回答
4551 浏览

web-services - 模拟 Biztalk 请求-响应端口使用的 WebService

我正在使用BizUnit对我的 Biztalk 编排进行单元测试,但是一些编排使用 WebService,并且测试这些似乎更像是集成测试而不是单元测试。

我熟悉使用模拟框架来模拟生成的代理对象,以便从 Windows 窗体应用程序测试 Web 服务,但我希望能够在请求-响应端口中以更集成的方式完成它?

你会如何处理这个问题?

0 投票
6 回答
6619 浏览

.net - .NET 中的模拟文件方法(如 File.Copy("1.txt", "2.txt"))

我们有一些方法调用 File.Copy、File.Delete、File.Exists 等。我们如何在不实际访问文件系统的情况下测试这些方法?

我认为自己是一个单元测试 n00b,所以任何建议都值得赞赏。

0 投票
2 回答
122 浏览

testing - 模拟......和验证者?

目前,我正在更深入地研究测试技术,尽管我不确定我是否仍然居住在 unittest 领域或已经将其留在了集成测试领域。

让我详细说明一下,给定两个组件 A 和 B 并且 A 使用 B,那么我们对 B 有一定的“向上合同”,对于 A 有一定的“向下合同”。基本上这意味着:如果 A 正确使用 B 并且B 行为正确,那么两个合同都将得到履行,一切都会正常工作。

我认为模拟是一种保证给定测试用例所需的向上契约子集的方法。例如,如果数据记录之前已插入,则数据库连接可能具有检索数据记录的向上合同。数据库连接模拟保证返回某些记录,而不需要将它们插入数据库。

但是,我目前想知道是否也有办法验证向下合同。给定数据库连接的示例,向下契约可能是:您必须连接到数据库并确保连接存在且有效,并输入正确的 SQL 查询。

有没有人做这样的事情?这值得为更复杂的合同工作吗?(例如,数据库连接可能需要 SQL 解析器才能完全验证对数据库层的调用)

问候,泰达