BDD和功能测试

Dan*_*Dan 7 tdd bdd unit-testing mocking

我开始买入BDD了.基本上,正如我所理解的那样,您编写的场景描述了某些故事的良好接受标准.你从简单的测试开始,从外到内,使用模拟代替你尚未实现的类.随着进步,你应该用实际类替换模拟.从BDD简介:

首先,使用模拟来实现片段,以将帐户设置为信用卡或卡有效.这些构成了实施行为的起点.在实现应用程序时,将更改givens和results以使用您已实现的实际类,以便在方案完成时,它们已成为正确的端到端功能测试.

我的问题是:当你完成一个场景时,你使用的所有类都应该是真实的,比如在集成测试中吗?例如,如果您使用DB,您的代码是否应该写入真实(但轻量级的内存)数据库?最后,你的端到端测试中是否应该进行任何模拟?

Pét*_*rök 3

嗯,这取决于:-) 据我了解,BDD 生成的测试仍然是单元测试,因此您应该使用模拟来消除对 DB 等外部因素的依赖。

然而,在成熟的集成/功能测试中,您显然应该针对整个生产系统进行测试,而不进行任何模拟。