如何测试 WAMP 服务?

How to test WAMP-Services?

上下文:我想编写一个使用 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...
    }); 
});

是否有 other/better 个选项?

同事的解决方案:

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

的回调
var asyncOp = assert.async();

和"commit"它与

asyncOp();

在回调中。

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