1

上下文:我想编写一个使用 WAMP(Web 应用程序消息传递协议,而不是 Windows 的服务集合)的 Web 服务。应该使用 WAMP,因为它以非常简单的方式支持事件和 RPC。并且开销更低。

现在如何在不手动编写所有内容的情况下对我的服务的 RPC 方法进行单元测试?

我的第一个方法是将 Autobahn-JS 和 QUnit 结合在一起。这里的问题是 AutobahnJS 不支持阻塞的“open()”方法。所以我不能确定 QUnits beforeEach-hook 打开的连接。看这个例子:

var connection;

QUnit.module("Module 1", function(hooks) {    
    hooks.beforeEach(function(assert) {
        // insert something executed before each test
        connection = new autobahn.Connection({
            url: wstarget,
            realm: wsrealm
        });
        connection.open();
    });

    QUnit.test( "check something", function( assert ) {
        assert.ok(connection.isConnected == true);
        // do something here that requires open connection...
    }); 
});

还有其他/更好的选择吗?

4

1 回答 1

0

同事解决方法:

QUnit 提供了一种允许异步测试的方法。它的用法有点像提交数据库事务。我必须设置,我期待一个回调

var asyncOp = assert.async();

并“提交”它

asyncOp();

回调里面。

来源:https ://api.qunitjs.com/async/

于 2015-12-01T11:20:28.377 回答