我尝试使用带有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();
});
});
答案 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();
};
});
});