【发布时间】:2017-01-03 11:17:09
【问题描述】:
我正在尝试在 jasmine 中测试一个定义如下的函数:
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);
});
问题是我得到了未定义,现在我明白这是因为 js 的工作方式,两步运行。
我尝试移至 function(){} 定义,但我需要它用于我的其他测试。 我测试了将其放入对象中的想法,但即使使用 this.method 仍然未定义。
谁能告诉我我在这里缺少什么或如何绕过这个问题?
【问题讨论】:
-
我不确定这是否对任何人都有帮助,但对我来说这个问题是因为在检查之前已经为我测试的函数定义了一个间谍。所以我只是把测试上移了,不是最简单的,而是解决了当前的问题。
标签: javascript unit-testing typescript jasmine