最近我开始对我正在开发的 JavaScript 应用程序进行单元测试。无论我使用 Jasmine、QUnit 还是其他,我总是编写一组测试。现在,我有了我的源代码,可以说:
function calc()
{
// some code
someOtherFunction();
// more code
}
我还有一个测试(无论什么框架,使用 Jasmine spies 或 sinon.js 或其他东西),确认当 calc()
时调用 someOtherFunction()
被执行。测试通过。现在,在某个时候,我重构了 calc 函数,因此 someOtherFunction()
调用不存在,例如:
function calc()
{
// some code
someVariable++;
// more code
}
之前的测试将会失败,但是该函数仍然会按预期运行,只是它的代码不同。
现在,我不确定我是否正确理解测试是如何完成的。显然,我将不得不返回并重写测试,但如果发生这种情况,我的方法是否有问题?这是不好的做法吗?如果是的话,那我就错了。
最佳答案
一般规则是您不测试实现细节。因此,鉴于您决定删除该调用是可以的,该方法是一个实现细节,因此您不应该测试它是否被调用。
20/20 事后诸葛亮是一件很棒的事情,不是吗?
一般来说,我不会测试称为“私有(private)”方法的“公共(public)”方法。测试委托(delegate)应该保留在一个类调用另一个类时。
关于javascript - 用Javascript重写单元测试可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22182317/