问题描述
我想用茉莉花为此功能编写一个单元测试:
getState: function () {
var $selectState = this.$('#selectState:visible');
if ($selectState) {
return $selectState.val();
}
return null;
},
我写了这个测试:
describe("function getType", function(){
it("should return value", function() {
var obj = {val: function(){return 'ok';}};
var spy1 = jasmine.createSpy("spy1").and.callFake(
function() {
return obj;
}
);
var dollar = $;
$ = spy1;
expect(view.getType()).toEqual('ok');
$ = dollar;
});
});
在我看来,它应该起作用,但是没有作用。 这是错误消息:
预期的undefined等于“ ok”。
有人知道可能是什么问题吗?
1楼
Garrarufa
0
已采纳
2015-08-11 10:22:51
我解决了问题。
this.$
似乎是从不同$
,从而改变这样的测试功能解决了这个问题:
describe("function getState", function(){
it("should return value", function() {
var obj = {val: function(){return 'ok';}};
var spy1 = jasmine.createSpy("spy1").and.returnValue(obj);
var dollar = view.$;
view.$ = spy1;
expect(view.getState()).toEqual('ok');
view.$ = dollar;
});
});