1
3
嗯,这取决于:-)据我所知,BDD生成的测试仍然是单元测试,因此应该使用mock来消除对外部因素(如DB)的依赖。 然而,在成熟的集成/功能测试中,您显然应该针对整个生产系统进行测试,而不需要任何模拟。 |
2
2
集成测试可能包含存根/模拟,以伪造您正在集成的模块之外的代码/组件。
|
3
2
是的,当一个场景运行时,理想情况下所有的类都是真实的。场景从用户的角度练习行为,因此系统应该像用户所看到的那样。 在BDD的早期,我们通常从场景中的模拟开始。我不再为这个费心了,因为在你下一级的时候,不断地嘲笑是一件很费劲的事。相反,我有时会做一些事情,比如硬代码数据或行为,如果它能让我更快地从涉众那里获得反馈的话。
当然,对于数据库之类的东西,可以使用内存中的DB或任何有助于更快获得反馈的东西。在某个时刻,您可能应该在一个尽可能接近生产的系统上运行您的场景。如果这个过程太慢,您可以在一夜之间完成,而不是作为常规构建周期的一部分。
祝你好运! |
4
0
我同意彼得和拉特科的观点。我认为你会永远保留mock,所以你总是有单元测试。 另外,还应该进行集成测试(没有模拟,使用数据库等)。 你甚至可以在中间找到一些有用的东西(模拟一段依赖代码(DOC),而不是另一段)。 |
5
0
|
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
Korr · 如何用Jest模拟组件测试中服务的功能 2 年前 |
Jordan Lee · 在另一个类中使用实例方法作为装饰器 6 年前 |
user2350138 · 为WireMock构建Java项目 6 年前 |
user8584384 · 单元测试不起作用,因为导入的文件作为输入 6 年前 |
Vino · 如何模拟Python类的对象? 6 年前 |
Enrico · .NET核心ASP。带有会话和测试的NET控制器 6 年前 |