我开始接受BDD的理念。基本上,我理解为您编写描述某个故事的验收标准的场景。您从外到内编写简单的测试,使用模拟代替尚未实现的类。随着进展,您应该用真正的类替换模拟。引自BDD介绍:
我的问题是:当您完成场景实现时,是否所有使用的类都应该是真实的,就像集成测试一样?例如,如果您使用数据库,您的代码是否应该写入真实(但轻量级的内存)数据库?最终,您的端到端测试中是否应该有任何模拟?起初,使用模拟来设置账户余额或验证卡片是否有效等,这些是实现行为的起点。当您实现应用程序时,给定和结果被更改为使用您已经实现的实际类,因此在完成场景时,它们已变成适当的端到端功能测试。