在此寻找一些实用建议以及人们在类似情况下遇到的任何体验。TDD:“仅测试”方法
我们使用BDD/TDD sytle方法来构建我们的软件(相当大/复杂的应用程序)最终结果是从业务需求导出的行为规范(Given/When/Then style),反映这些行为的单元测试和反映测试要求的代码。但是,最近我们的测试部门已经开始运行集成测试,并且可以理解,他们想要使用我们(已经通过)的业务逻辑代码来设置和拆除测试状态(而不是直接与数据库打交道),作为他们主要关注通过应用程序的UI进行测试,并且不希望花费整天的时间来讨论数据库。
问题是,一些实体存储库没有删除方法,因为目前还没有业务需求。许多已经存档/恢复/备份等(并且可能在待办事项上有待删除)。
所以现在我们有一个测试部门。要求删除(但与商业用户故事冲突)
所以....我的问题是...如果我要添加方法专门为测试部门...处理的最佳方式是什么这些。我知道这在“TDD乌托邦”中被普遍认为是不正确的做法,但实际上,您是如何处理这种冲突的?
的第一个想法我有或者是使用命名...
void TestOnly_Delete(Guid id){}
... ...属性
[TestOnly]
void Delete(Guid id){}
...或编译器指令...
#if TESTBUILD
void Delete(Guid id){}
#endif
所以至少开发人员可以知道不要调用TestOnly方法,并且最大程度上不会在生产版本中部署测试方法。
...或只是欺骗并添加一个用户故事来管理它的方式;-)
任何经验或建议,衷心感谢?
在此先感谢。