我不知道这是否可能,但这是我的问题:
我在我的Ember.js应用程序中进行了一些javascript测试,在某些时候,我有一个按钮/链接,可以在满足某些条件时打开合作伙伴网站的新窗口。
现在我正在寻找一种方法来测试我的业力/ qunit测试中的行为,但我对如何做到这一点没有任何想法。任何指针都会受到赞赏!
document.write('<div id="test-app"></div>');
App.rootElement = '#test-app';
App.setupForTesting();
App.injectTestHelpers();
module("Services");
test("Access services", function () {
visit("/p/2/i/services").then(function () {
click('#MyService').then(function () {
// What should I do here ?
});
});
});
答案 0 :(得分:2)
我的第一个建议是将window.open
功能抽象为一个模块,因此应用程序只需在打开一个窗口时访问一个界面。它不应该关心模块是如何做到的,唯一的问题是它使用正确的参数调用模块的窗口打开方法。
您确认使用正确的参数调用窗口打开方法的方法是使用类似Sinon.js(http://sinonjs.org/)的方法为您的测试使用方法存根。这将允许您存根窗口打开方法,并运行断言,它被称为特定次数并具有某些参数。第一次设置有点困难,但绝对是彻底测试你的应用程序的必要之物。