2017-01-03 55 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/