node.js和mocha-qunit-ui:使用异步requirejs依赖项进行测试

时间:2014-10-01 21:40:35

标签: javascript node.js asynchronous mocha qunit

首先简短说明:以下剪辑中的测试永远不会执行:

setTimeout(function() {
    test("test", function() {
        ok(true, "okay");
    })
}, 1000);

有没有办法不自动启动mocha-qunit-ui但是等待一些异步回调来创建测试?


那么,为什么我会这样需要呢?

我正在尝试使用nodejs和mocha-qunit-ui为我的类运行浏览器测试。这些类由requirejs加载 asynchrously

所以我可以创建一个这样的测试:

test("test", function() {
    stop();
    requirejs(
        ['Dependency'],
        function(Dependency)
        {
            expect(1);
            var d = new Dependency();
            ok(d.test(), "test");
            start();
        }
    );
 }

但是我想在具有相同依赖关系的同一个类上运行多个测试,所以我想创建一个测试对象

var d = new Dependency();

在测试之外。但是测试将在异步调用中进行,因此永远不会被调用。

1 个答案:

答案 0 :(得分:0)

好吧,我对mocha-qunit-ui插件并不是非常熟悉,但是QUnit has a config object可以用来告诉它在你准备好之前不要运行(所以你可以加载所有的类,等等):

<script src="path/to/qunit.js"></script>
<script>
QUnit.config.autostart = false; // be sure this is set BEFORE you add your actual tests
require(
    [ "whatever", "your", "dependencies", "are" ],
    function() {
        QUnit.start(); // tell QUnit you're ready to go
    }
);
<script>