import Ember from 'ember';
import startApp from '../../helpers/start-app';
var App;
module('Integration | Authentication | Abilities', {
integration: true,
setup() {
App = startApp();
},
teardown() {
Ember.run(App, 'destroy');
}
});
test('Only SuperUsers, Researchers and AccountHolders can see messages', function(assert) {
visit('/');
assert.equal(find('div').text(), 'fsfsfd');
});
这是一个集成测试,我正在努力工作,所以我可以测试我们的ember-cli应用程序中的基本用户交互。问题是这个简单的测试只会在我搜索DOM时返回空字符串。它没有击中未经授权的页面或任何它只是从任何testHelpers返回任何东西。 currentURL
,currentPath
返回undefined。
在理解集成测试的工作原理时,我是否遗漏了一些绝对基本的东西?
我正在尝试测试ember-can如何基于其标题给予和拒绝用户权限。但是,我可能只是测试徽标是否显示在右上角,因为我目前无法在页面上看到任何内容。
答案 0 :(得分:0)
我认为你缺少的是测试是异步的。转换涉及承诺(通常是加载模型),因此您需要等待visit
完成。您可以使用andThen
帮助程序:
test('Only SuperUsers, Researchers and AccountHolders can see messages', function(assert) {
visit('/');
andThen(function() {
assert.equal(find('div').text(), 'fsfsfd');
});
});
答案 1 :(得分:0)
我发帖是因为事实证明问题是我们的网站使用rootURL设置的方式。我必须将此行放在startApp.js文件中:setResolver(Ember.DefaultResolver.create({ namespace: "/cli/ea/" }));
看起来解析器将我带到localhost:4201 /实际上并没有被使用,因为我们是从rails(localhost:3000)代理的。因此,没有任何东西从任何DOM交互回来,因为没有路由,也没有模板集。 currentURL和其他帮助者返回undefined我猜是唯一一个在后见之明不同寻常的作品。