当将jQuery选择器传递给emberjs中的click()方法时,在测试时,该元素不会被点击。 我试图编写一个简单的验收测试,其中点击了一个带有id和href的元素,并且URL发生了变化,然后我断言页面发生了变化。
我将ID添加到<a>
元素id =&#34; sidebar-user-profile&#34;当我尝试click($('#sidebar-user-profile'))
时,我收到错误&#34;错误:找不到元素[对象对象]。&#34;。我尝试在页面上,在Chrome控制台中输入$('#sidebar-user-profile')
并选择了相同的元素。
过去两周我一直试图让这个工作起作用,而且我没有选择。
编辑:这是有错误的测试:
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;
<li>{{#link-to 'home.user-profile' id="sidebar-user-profile"}}User Profile{{/link-to}}</li>
&#13;
答案 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');
});
});