我有一个使用Ember Data的ember-cli应用程序,我正在尝试编写验收测试,其中包含提交表单以提问的失败案例.在测试中,我正在使用Pretender模拟响应以返回错误对象,然后断言用户会看到一条消息,让他们知道他们的提交失败.
我写的实际断言正在传递,它会检查要显示的错误消息.问题是我也遇到了失败Error: The backend rejected the commit because it was invalid: {title: can't be blank, body: can't be blank}.
有没有办法在测试期间消除这个错误?我接近这个错误吗?在这种情况下,这实际上不是错误.后端应该拒绝提交,因为这就是我想要覆盖的内容.
这是测试:
test('errors are displayed when asking question fails', function() {
server.post('/api/v1/questions', function(request) {
var errors = {
title: ["can't be blank"],
body: ["can't be blank"],
};
return jsonResponse(422, { errors: errors });
});
authenticateSession();
visit('/questions/new');
click('button:contains("Ask")');
andThen(function() {
ok(hasContent('There were some errors with your question.'),
'Error message displayed');
});
});
Run Code Online (Sandbox Code Playgroud)
以及正在触发的相关行动:
save: function(model) {
var …Run Code Online (Sandbox Code Playgroud) 每当我有一个使用@vars变量(即@ index,@ key,@ first,@ pop)的Handelbars模板时,我就会在ember-cli中收到编译错误.(有关每个帮助程序中这些@vars变量的文档,请参阅http://handlebarsjs.com/#iteration.)下面是一个使用ember-cli构建的简单应用程序,只包含两个添加到程序中的文件:routes/application.js和templates/application.hbs.在这篇文章的底部是ember-cli给出的编译错误消息的屏幕截图.我的代码中有错误吗?或者这是我应该在github上报告的错误@ https://github.com/stefanpenner/ember-cli?
路线/ application.js中
export default Ember.Route.extend({
model: function() {
return ['red', 'blue', 'green'];
}
});
Run Code Online (Sandbox Code Playgroud)
模板/ application.hbs
{{#each model}}
{{@index}}: {{this}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
ember-cli编译错误消息的屏幕截图:

以下是涉及的各种工具的版本:
我想在我的页面上添加一些jQuery代码,需要在页面呈现后加载?
包含在ember-cli中的最佳方法是什么?
我们需要创建一个新的自定义js文件并使用app.import导入该js文件吗?
非常感谢.
我有一个stdlib初始化器.在该初始化程序中,我重新打开一些内置的Ember类并添加一些自定义方法.例如,我添加reverseEach到Ember.Enumerable和Array.
它们在应用程序中运行良好,但在测试中我收到"reverseEach:undefined不是函数".
我如何表明测试应该使用初始化程序?
我试过了needs: [..., 'initializer:stdlib'].它没有偶然发现,但我仍然收到"未定义"的错误.
这是一个示例测试:
`import { test, moduleForModel } from 'ember-qunit'`
moduleForModel 'foo', 'foo',
needs: [
'model:bar'
'initializer:stdlib'
]
test 'deleteLastNItems', ->
model = @subject()
model.set '', ['foo', 'bar', 'baz', 'quux']
model.deleteLastNItems 2 # This should not die with "reverseEach: undefined is not a function"
deepEquals model.get('someProperty'), ['foo', 'bar']
Run Code Online (Sandbox Code Playgroud) 我正在使用ember-pagination,当我运行ember serve时,我得到以下错误:
它说: "ENOENT, no such file or directory 'bower_components/ember-addons.bs_for_ember/dist/js/"

版本:
$ node-v
V0.10.25
$ npm -v
1.3.10
Run Code Online (Sandbox Code Playgroud)
仍在寻找解决方案,但我找不到它..
我最近按照本教程中的步骤概述将Liquid Fire添加到我的Ember CLI 0.2.3项目中:http://www.programwitherik.com/doing-animations-and-transitions-with-liquid-fire-and-ember/
我用npm install --save-dev liquid-fire添加了Liquid Fire.我添加了一个transitions.js文件,其中包含教程中概述的代码.我用{{liquid-outlet}}替换了{{outlet}}.没别的了.什么都没发生.日志或控制台中没有错误,并且插座没有显示任何内容.我已经尝试了教程所说的内容.我错过了让{{liquid-outlet}}工作的步骤吗?
我相信我可能在这里遇到了一个环境问题,但是我很困惑我能做些什么来解决它.我创建了一个ember-cli项目,将它提交给git,添加了一些东西.我运行了典型的npm install && bower install命令并尝试过ember s.
虽然网站加载正常,但当我浏览http:// localhost:4200/tests /以确保qunit启动并运行时,我遇到了一些错误.
Uncaught Error: Could not find module `ember-qunit` imported from `ember-project/tests/test-helper
Uncaught Error: Assertion Failed: The tests file was not loaded. Make sure your tests index.html includes "assets/tests.js".
这立刻引起了一面红旗,因为我之前已经创建了几个ember项目而没有遇到类似的问题.我有我的合作伙伴(我在学校)签出项目,运行npm install && bower install && ember s并且qunit模块适合他们!
我试过git克隆一个新的repo几次,我甚至已经完全卸载节点和bower,但无论我尝试什么,我似乎无法拉出正常/测试结帐.
我的合作伙伴都在运行VM - Ubuntu和Debian,而我在Mac上,但这似乎不应该是一个大问题,特别是因为我创建了项目!
我已经看了好几个地方(这里,这里,这里),但我似乎无法得出对我有用的结论.
我和其他人一样有一个相同的bower.json.我在下面列出了我的文件结构图片,我的bower.json和my tests/index.html.
以下是一些环境统计信息:
ember version: 1.13.13
node: 5.0.0
os: darwin x64
bower: 1.7.1
Run Code Online (Sandbox Code Playgroud)
我注意到的一件事是,当我这样做以查看npm的版本时有所不同,但我不确定这是否重要.
ember …Run Code Online (Sandbox Code Playgroud) 我们从一个新的应用程序开始,使用Ember 3.8和bootstrap / SASS。似乎有两个可用插件在Ember中支持引导程序,ember-boostrap和ember-cli-bootrap-sassy。
尽管前者为大多数bootstrap功能实现了ember组件,并通过其自己的实现“替换”了原始的bootstrap.js,但对于后者,看来我仍然可以使用所有原始的组件和js实现。
乍一看,我会更熟悉ember-cli-bootrap-sassy,因为我仍然可以使用Web上的所有引导示例,并且拥有“定制”版本的bootstrap.js对我来说似乎有点违反直觉。另外,ember-bootstrap的所有引导功能都没有实现,但是我仍然需要?看来我可能会以使用ember-bootstrap的应用程序结尾,但是对于未实现的事情还使用了各种“变通方法”。
由于我在该领域没有太多经验,因此很高兴获得专家的一些建议和见解。
我的应用程序中有一个问题,其中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),但是第二次测试仍然每隔一次运行测试失败.
我已经生成了一个'home'路线,我想将我的基本网址'/'更改为'home'我尝试将这行代码添加到router.js
App.Router.reopen({
rootURL: '/blog/'
});
Run Code Online (Sandbox Code Playgroud)
我也尝试将config/environment.js中的base-url设置为'/ home /'
ember-cli ×10
ember.js ×8
ember-data ×2
qunit ×2
bower ×1
ember-qunit ×1
javascript ×1
npm ×1
unit-testing ×1