ember.js find()助手可接受的选择器

尝试测试我的第一个ember.js应用程序。 使用烬应用程序工具包。

困惑于qunit如何与选择器一起工作(我认为jquery选择器可以工作,而且他们确实 - 大多数情况下......)。

我的车把有这样的代码:

{{#link-to 'locations.new' classNames='add-btn'}}
  Add new location
{{/link-to}}

我打算用适当的href测试链接是否存在,并点击链接并在点击后验证当前的url和路由。

所以,我的测试如下:

// There is an element that links to locations/new
var link = find('a[href="#/locations/new"]');
ok(link, 'There is a link to add new location on the page');

click(link);
andThen(function() {
  equal(currentRouteName(), 'locations.new', 'Clicked "add" button - now locations.new route is active');
  equal(currentURL(), '/locations/new', 'Clicked "add" button - and current url is /locations/new');
});

注意:我在EAK上使用此PR的currentRouteNamecurrentURL助手,并且它们按预期工作。

我的测试失败click(link)部分, Error: Element [object Object] not found.

如果我尝试直接通过选择器点击 - 就像这样 - click("a[href='#/locations/new']") - 我收到一个错误Element a[href='#/locations/new'] not found. 。 如果我尝试使用反斜杠或双反斜杠来逃避特殊字符#,结果相同。

就目前而言,我通过逐级抓住div来缓解这个问题 - 就像这样:

var link-by-class = find('.add-btn');
click(link-by-class);
andThen( as above )

测试通过。

问题:

  • 我怎么不能在href找到的同一个变量上调用“click()”?
  • 我是否对合适的执行漠不关心? (好吧,这个班级找到元素的解决方法不适合那个账单?)
  • 提前致谢!

    UPDATE

    每kingpin2k的评论,我的测试是合格由于错误的断言方法我选择- ok(foo, 'bar')是否会通过foo是一个空数组(其中find 。回报,如果没有结果灰烬API文档指导我用findWithAssert,它无法找到这样的href的链接。

    令人费解的是,在JS控制台中使用每个jQuery文档的[attribute='value'] jquery选择器; 并且find和findWithAssert在ember-testing中的实现似乎只是将选择器传递给jQuery ...

    它为什么会失败? 我不知道。 有人会认为GLaDOS解释了快速的事情,快速的事情出来了 - 只要将选择器传递给jQuery就会让它返回,因为jQuery会返回它 - 但显然不是。

    然后,我会坚持使用类选择器,尽管它确实实现了类的实现。


    拒绝放弃测试实现 - 不可知论,我决定使用基本的选择器,并发现我的失败的无证的罪魁祸首。

    首先,我想获得所有链接 - 并通过href属性过滤它们:

      var links = findWithAssert('a');
      var my-link = links.filter('[href="#/location/new"]');
    

    这给了我一个正确的links长度,但my-link仍然是空的。 所以我提醒了所有的hrefs,以确保我没有遗漏任何东西:

      for(var i=0; i<links.length; i++){
        alert(links[i].getAttribute('href'));
      }
    

    而令我惊讶的是,我看到了没有领先#海报系统。

    答案:在ember.js find()助手中使用带有href属性的复杂css选择器时,从url中删除散列。

    链接地址: http://www.djcxy.com/p/77161.html

    上一篇: ember.js find() helper acceptable selectors

    下一篇: can't capture image by raspberry pi camera in python