2010-12-22 23 views
0

我使用jasmine連接到Js-test-driver使用an adapter來連接兩者。爲什麼假不會在茉莉花中定義?

我這有以下測試案例:

describe("Undefined false", function(){ 
    beforeEach(function(){ 
     var undefFalse = false; 
    }); 

    it("should return a defined value", function(){ 
     expect(this.undefFalse).toBeDefined(); 
    }); 

    it("should return false", function(){ 
     expect(this.undefFalse).toBeFalsy(); 
    }); 
}); 

而第二個測試成功不出所料,第一個失敗,出現以下錯誤:

Undefined false test.test that it should return a defined value failed (0,00 ms): AssertError: Expected undefined to be defined.

這是爲什麼false應該undefined

回答

1

我不知道很多關於茉莉花但這:

var undefFalse = false; // local variable 

this.undefFalse; // property of an object(?) 

會顯然是不行的。

確保要麼擺脫斷言中的this.,要麼在正確的對象上設置undefFalse

+0

第二個斷言沒有`this`,第二個測試`toBeFalsy`會失敗。然而,在閱讀你的答案之後,我將聲明更改爲`this.undefFalse = false`,並且兩個測試都成功了。我擔心的是我可能會濫用`this` ... – Eldros 2010-12-22 12:55:58