Lar*_*sJK 5 acceptance-testing qunit ember.js ember-data ember-cli
我的应用程序中有一个问题,其中2个验收测试似乎发生冲突.如果我运行测试,则2个测试中的一个将失败.下次我运行它时另一个会失败等等.如果一个接一个地运行它们永远不会失败
第一个测试是测试访问URL将根据模型是否在其toMany-relationship(异步)中有任何记录而重定向到正确的路径.此测试失败并显示:错误:断言失败:无法在未定义的对象上使用'currentPath'调用get.
第二个测试是检查toMany关系是否在无序列表中呈现的测试.此测试失败,因为list-item的内容为空.
这些是我的测试:
test('visiting /categories/#', function() {
visit('/categories/1');
andThen(function() {
equal(currentPath(), 'categories.category.subcategories.index');
});
});
test('renders products', function () {
visit('/categories/2/products');
andThen(function () {
var list = find('#product-list li');
equal(list.length, 2);
var first = find('#product-list li').eq(0);
equal(first.text(), 'A4');
var last = find('#product-list li').eq(1);
equal(last.text(), 'A3');
});
});
Run Code Online (Sandbox Code Playgroud)
更新:
升级到最新的ember-cli 0.0.43现在第一次测试失败已经消失了(npm install --save-dev ember-cli),但是第二次测试仍然每隔一次运行测试失败.
我的猜测是,当您第一次访问该页面时,该模型尚不可用,并且是从后端请求的。
在您的测试中,您不会等待模型变得可用,并在渲染没有记录的情况下访问该页面。
您可以使用 jQuery 从 HTML 元素中检索内容。当元素不可用时,jQuery 会默默地生成一个空集合,该集合始终返回空值。因此,测试失败。
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |