相关疑难解决方法(0)

Javascript:使用Sinon模拟构造函数

我正在试着弄清楚如何使用sinon模拟一个构造函数.我有一个函数,通过调用接受一些参数的构造函数来创建多个小部件.我想验证构造函数是否使用正确的参数调用了正确的次数,但我不想实际构造小部件.以下链接似乎解释了一种模拟构造函数的直接方法,但它对我不起作用:

使用Jasmine监视构造函数

http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html

当我对存根构造函数进行以下调用时:

sinon.stub(window, "MyWidget");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Uncaught TypeError: Attempted to wrap undefined property MyWidget as function 
Run Code Online (Sandbox Code Playgroud)

在Chrome中进行调试时,我看到MyWidget显示在Scope Variables的Local部分中,但是窗口外没有MyWidget属性.

任何帮助将不胜感激.

javascript constructor unit-testing mocking sinon

37
推荐指数
4
解决办法
6万
查看次数

如何使用mocha.js模拟单元测试的依赖类?

鉴于我有两个ES6课程.

这是A类:

import B from 'B';

class A {
    someFunction(){
        var dependency = new B();
        dependency.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

和B级:

class B{
    doSomething(){
        // does something
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用摩卡(用于ES6的babel),柴和sinon进行单元测试,效果非常好.但是,在测试A类时,如何为B类提供模拟类?

我想模拟整个类B(或所需的函数,实际上并不重要),以便A类不执行实际代码,但我可以提供测试功能.

这就是现在的mocha测试:

var A = require('path/to/A.js');

describe("Class A", () => {

    var InstanceOfA;

    beforeEach(() => {
        InstanceOfA = new A();
    });

    it('should call B', () => {
        InstanceOfA.someFunction();
        // How to test A.someFunction() without relying on B???
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js node.js

36
推荐指数
1
解决办法
2万
查看次数