我怎样才能在茉莉花框架中使用websocket?

时间:2016-05-23 07:15:27

标签: javascript unit-testing jasmine

我尝试使用带有websocket的Jasmine框架进行UnitTest。 (jasmine-2.4.1 ver。)

websocket send功能很好。但是onmessage函数有问题。

结果值未定义。

这是我的代码:

var ws;
beforeEach(function() {
    ws = new WebSocket("ws://myaddress:port");
});

describe("Module Test", function() {

    it("first test", function (done) {
        //send to server
        ws.onopen = function(e) {
            ws.send(JSON.stringify({"module":"test","func":"test_func"}));
        };

        var result;
        ws.onmessage = function(e) {
            result = JSON.parse(e.data.rsp);
            console.log(result); // <- this result value is true...
        };

        //server return result value.. and... it is true.....
        //but result value is undefiend....
        expect(result).toBe(true);
        done();
    });
});

1 个答案:

答案 0 :(得分:0)

在收到消息之前,您期望结果是真实的。如果我误解了这个问题,请原谅我,但这应该可以解决你的问题: -

var ws;
beforeEach(function() {
    ws = new WebSocket("ws://myaddress:port");
});

describe("Module Test", function () {

    it("first test", function (done) {
        ws.onopen = function(e) {
            ws.send(JSON.stringify({"module":"test","func":"test_func"}));
        };

        ws.onmessage = function(e) {
            var result = JSON.parse(e.data.rsp);
            expect(result).toBeTruthy();
            done();
        };
    });
});