EmberJS - Click()帮助器没有按预期工作

时间:2015-06-05 09:30:02

标签: jquery ember.js ember-testing acceptance

当将jQuery选择器传递给emberjs中的click()方法时,在测试时,该元素不会被点击。 我试图编写一个简单的验收测试,其中点击了一个带有id和href的元素,并且URL发生了变化,然后我断言页面发生了变化。

我将ID添加到<a>元素id =&#34; sidebar-user-profile&#34;当我尝试click($('#sidebar-user-profile'))时,我收到错误&#34;错误:找不到元素[对象对象]。&#34;。我尝试在页面上,在Chrome控制台中输入$('#sidebar-user-profile')并选择了相同的元素。

过去两周我一直试图让这个工作起作用,而且我没有选择。

编辑:这是有错误的测试:

&#13;
&#13;
test('exists and works /home/user-profile', function(assert) {
  assert.expect(1);
  click('#sidebar-user-profile');
  andThen(function() {
    assert.equal(currentURL(), '/home/user-profile');
  });
});
&#13;
&#13;
&#13;

&#13;
&#13;
<li>{{#link-to 'home.user-profile' id="sidebar-user-profile"}}User Profile{{/link-to}}</li>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

单击选择器而不是jquery对象,您的测试看起来像:

click('#sidebar-user-profile');
andThen(() => {
  assert.equal(currentURL(), `/myurl/new`, 'Should go to new route');
});

编辑:

test('exists and works /home/user-profile', function(assert) {
  visit('/home'); // route where your link-to is located
  click('#sidebar-user-profile');
  andThen(function() {
    assert.equal(currentURL(), '/home/user-profile');
  });
});