使用Jasmine

时间:2018-03-15 12:11:42

标签: javascript node.js unit-testing testing jasmine

我正在测试一个相当大的项目,一切都很好,除了事件(来自节点的EventEmitter / event.js),我必须改变环境以从同一事件中获得不同的结果。

我目前的设置如下:

beforeEach((done)=> {
        //<sets up some stuff> 


       //<sets up spies >

        <the_Event_Emitter>.emit('keyword1');


        setTimeout(() => {
            done();
        },1);

    });

然后在规格中只是预期。

哪个工作完美,但是我必须编写一个完整的describe-Block,其中包含一个特定的beforeAll-block,用于环境的每个变体(有问题的事件在某个变量上有一个switch-case)

使beforeEach-block看起来像这样:

<the_Event_Emitter>.emit('keyword1');
<change Environment>
<the_Event_Emitter>.emit('keyword1');
...

会“工作”,但是不可接受的不洁,电话泄漏到错误的规格等。

有没有一个像样的方法呢? 来自旧的(2.0之前的)Jasmine的waitFor()可以轻松解决我的所有问题。

[我尝试过没有beforeEach(规范中的.emit等),但由于事件异步运行,因此无效,因此有问题的代码在尝试预期后运行(并且因为代码没有失败而失败)跑了)]

编辑: 我现在通过在之前的测试中设置环境来“做”它。 只要测试按顺序运行(这不是正确的单元测试,就像我所知的那样......)

0 个答案:

没有答案