Ember.js 检测是否在余烬测试中打开了新窗口

Ember.js 检测是否在余烬测试中打开了新窗口,ember.js,phantomjs,Ember.js,Phantomjs,我不知道这是否可能,但我的问题是: 我正在我的Ember.js应用程序中进行一些javascript测试,在某些情况下,我有一个按钮/链接,当满足某些条件时,它会打开一个新窗口,指向合作伙伴网站 现在,我正在寻找一种方法,在我的业力/质感测试中测试这种行为,但我一点也不知道如何做到这一点。任何指针将不胜感激 document.write('<div id="test-app"></div>'); App.rootElement = '#test-app'; App.set

我不知道这是否可能,但我的问题是:
我正在我的Ember.js应用程序中进行一些javascript测试,在某些情况下,我有一个按钮/链接,当满足某些条件时,它会打开一个新窗口,指向合作伙伴网站

现在,我正在寻找一种方法,在我的业力/质感测试中测试这种行为,但我一点也不知道如何做到这一点。任何指针将不胜感激

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 ?
    });
  });
});
document.write(“”);
App.rootElement='#test App';
App.setupForTesting();
App.injectTestHelpers();
模块(“服务”);
测试(“访问服务”,功能(){
访问(“/p/2/i/services”)。然后(功能(){
单击(“#MyService”)。然后单击(函数(){
//我在这里该怎么办?
});
});
});

我的第一个建议是将
窗口抽象出来。将
功能打开到一个模块中,这样应用程序在打开窗口时只需访问一个界面。它不应该关心模块如何做,它唯一关心的是它使用正确的参数调用模块的windowopen方法


确认它使用正确参数调用windowopen方法的方法是使用类似Sinon.js()的方法存根进行测试。这将允许您对windowopen方法进行存根,并使用特定的参数运行断言,表明它被调用了一定的次数。第一次安装有点困难,但彻底测试你的应用肯定是一件必要的坏事

PhanjomJS增加了对
窗口的支持。打开
我会查看:Thx的提示。我添加了一些代码,因为我看不出你所指的问题,我应该如何实现它。如果你加上一些建议,那就太好了!这是一种解决这个问题的有趣方式,这是人们想象不到的。谢谢你的提示,我会调查一下,然后再给你回复。如果通过简单的href完成“window.open”,您将如何管理它?您是否有理由不想在链接中添加属性
target=“\u blank”
?据我所知,您正在测试某些条件下是否存在链接,以及其他条件下是否存在链接?此外,您可能需要检查正确的
href
属性值。您不需要测试点击——您不是在测试用户:-)