我有一个方法将一些数据对象传入其中,进行一些计算以根据其他字段填充对象上以前的空字段,然后发回结果。这个方法并没有真正跨越集成边界 - 数据对象是在其他实体上具有相当复杂的依赖树的实体,但从这个方法来看,它们只是具有状态的对象(谢谢ORM)。
在我看来,单元测试需要检查状态 - 设置一些数据,运行代码进行计算并检查结果。这是否是一个合法的案例,忽略了似乎是全面的建议,测试应该检查行为,而不是状态?或者我在某种程度上误读了测试驱动的文献?
答案 0 :(得分:2)
我会说你正在测试进行计算的方法的行为,所以这不是问题。
有些人可能会建议在单独的方法(作为服务)中而不是在包含数据的类中使用行为可能是代码气味,但这是一个不同的问题。
答案 1 :(得分:0)
行为是给定输入状态,您获得预期的输出状态。单元测试应该创建具有已知状态的虚拟对象(可能是模拟),运行测试中的方法,然后检查输出(在这种情况下输入参数的状态)是否正确。