2017-01-03 56 views
2

我試圖測試在茉莉的函數是這樣定義的:茉莉花打字稿 - 問題與測試FUNC VS設項= FUNC

let main = new function() { 
    this.addIframe =() => { 
     try { 
      $("body").append("<iframe id='myiframe'> </iframe>"); 
      return true; 
     } catch (err) { 
      dosomthing(); 
      return false; 
     } 
    }; 
}; 

我需要這種類型的定義稍後設立間諜和類似於測試服中的東西。

describe("Function AddIframe",()=> { 
    it("should return true if opened iframe",()=>{ 
     expect(addIframe()).toBe(true); 
    }); 

的問題是,我得到了一個未定義,現在我明白了,這是becouse的方式JS工作,用2步運行:但是,試圖利用該代碼來測試返回statment時,現在即時通訊卡有問題。

我試着移動到一個函數(){} defintion,但我需要爲我的其他測試。 我測試了把它放在一個對象中的想法,但即使在使用this.method時仍然未定義。

任何人都可以告訴我,我在這裏失蹤或如何繞過這個問題?

+0

我不知道這是否會是有益的人,但是是什麼讓這個問題對我來說是,是檢查那裏之前是我測試過的功能的一個已定義的間諜。所以我只是提出了測試,而不是最深刻的靈脩,但修復了當前的問題。 –

回答

0

方法addIframemain對象上定義,因爲您正在創建匿名構造函數的新實例。所以,你必須使用main.addIframe(),而不是addIframe()

expect(main.addIframe()).toBe(true); 

這裏有一個工作示例:http://jsfiddle.net/bBL9P/508/