【发布时间】:2015-08-07 08:19:36
【问题描述】:
我想用 Jasmine 为这个函数写一个单元测试:
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;
});
});
在我看来,它应该有效,但它没有。这是错误信息:
预期未定义等于“ok”。
有人知道问题出在哪里吗?
【问题讨论】:
-
view.getType() 的值是多少?
-
视图在哪里设置?
-
if ($selectState) {总是正确的,但return $selectState.val();不是。如果 $selectState.size() 为 0,则 $selectState.val() 未定义。 -
这一定是问题所在。但我该如何解决?尺寸在哪里调用?
标签: javascript unit-testing testing jasmine bdd