javascript - 使用 ScrewUnit 模拟 javascript 方法

标签 javascript unit-testing screwunit

我有一个简单的验证方法如下

function someMethod {
   //some processing
}

我想对这个方法进行单元测试。我可以 mock 它的最简单方法是什么。通常如果我有一个对象如下:

var someObject = function() {
   reload : function() {
    //reload logic here
   }
}

我可以 stub someObject 然后检查是否 mock(someObject).should_receive("reload").exactly('once')

或类似的东西。但是从这个时候我就有了一个方法。我该如何 mock 它?

最佳答案

模拟非面向对象的代码很困难。 Misko Hevery 在这里写道:http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability .困境是缺少可以将模拟内容注入(inject)计算的“钩子(Hook)”。

你可以得到实际的实现。该方法驻留在一个对象中。该方法将简单地委托(delegate)给该对象。因此,为了测试方法,您只需要测试对象(合理假设您获得了正确的委托(delegate)代码)。

关于javascript - 使用 ScrewUnit 模拟 javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1973963/

相关文章:

javascript - jquery toggleclass 延迟时间

javascript - 如何在javascript中将数组值与 'for'循环的结果进行比较

php - 帖子不起作用

javascript - 如何创建循环来创建变量?

angular - Angular 4 单元测试 detectChanges() 中未调用 ngOnChanges

javascript - dirty-chai.js 到底是做什么的?

c# - 我可以模拟私有(private)方法吗?或者测试此 POST 方法的正确方法是什么?