由于单元测试是一个白盒测试,它假定您必须事先知道您的代码必须处理的所有情况、您的代码必须处理的所有客户端对象(也就是测试中的 Mock 对象)以及正确的执行顺序客户端对象必须出现在代码中(因为单元测试考虑到模拟对象的调用)。换句话说,您必须确切地知道代码的详细算法。在您准确了解代码的算法之前,您必须先编写它!
从我的角度来看,我看不出在编写源代码之前如何编写正确的单元测试。尽管如此,由于功能测试是一种用户需求,因此可以先编写功能测试。
你的建议?
最良好的问候
为这个问题提供了一个例子:
How to write test code before write source code when they are objects dependencies?
最佳答案
首先:大量单元测试不需要 Mocks,不需要与其他对象交互;你的问题不适用于那些。
如果新方法的目的或部分目的是对某个协作对象产生影响,那么这就是必须测试的一部分。如果这不是它的目的,但您的实现偶然会对协作者产生影响,那么您不应该测试这种偶然影响。
无论哪种方式,很容易看出您可以在编写代码之前编写测试。如果您的方法应该影响另一个对象,那么测试应该这样说。如果您的方法不应该这样做,则测试不需要说明该方法与其他对象的交互。
关于unit-testing - 在编写源代码之前如何编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537683/