标签: ember-cli

在测试期间处理"后端拒绝提交,因为它无效"

我有一个使用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)

qunit ember.js ember-data ember-testing ember-cli

6
推荐指数
0
解决办法
751
查看次数

ember-cli支持Handlersars @vars in each helper(即@index,@ key,@ first,@ are)

每当我有一个使用@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编译错误消息的屏幕截图: ember-cli编译错误消息的屏幕截图

以下是涉及的各种工具的版本:

  • ember-cli:0.0.40
  • 节点:0.10.30
  • npm:1.4.21
  • 把手:1.3.0
  • 恩伯:1.6.1

javascript handlebars.js ember.js ember-cli

6
推荐指数
1
解决办法
878
查看次数

添加外部JavaScript代码的最佳方法是什么?

我想在我的页面上添加一些jQuery代码,需要在页面呈现后加载?

包含在ember-cli中的最佳方法是什么?

我们需要创建一个新的自定义js文件并使用app.import导入该js文件吗?

非常感谢.

ember-cli

6
推荐指数
1
解决办法
1615
查看次数

在单元测试中使用初始化程序?

我有一个stdlib初始化器.在该初始化程序中,我重新打开一些内置的Ember类并添加一些自定义方法.例如,我添加reverseEachEmber.EnumerableArray.

它们在应用程序中运行良好,但在测试中我收到"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)

unit-testing ember.js ember-cli

6
推荐指数
1
解决办法
870
查看次数

ENOENT,没有这样的文件或目录'bower_components/ember-addons.bs_for_ember/dist/js /'

我正在使用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)

仍在寻找解决方案,但我找不到它..

ember.js ember-cli

6
推荐指数
1
解决办法
397
查看次数

将液体火灾添加到Ember CLI项目,{{liquid-outlet}}什么都不做

我最近按照本教程中的步骤概述将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 ember-cli-addons

6
推荐指数
1
解决办法
1387
查看次数

未捕获错误:找不到模块`ember-qunit`.奇怪的开箱即用的ember-cli行为

我相信我可能在这里遇到了一个环境问题,但是我很困惑我能做些什么来解决它.我创建了一个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)

npm ember.js bower ember-cli ember-qunit

6
推荐指数
1
解决办法
1034
查看次数

在ember 3.8中使用bootstrap

我们从一个新的应用程序开始,使用Ember 3.8和bootstrap / SASS。似乎有两个可用插件在Ember中支持引导程序,ember-boostrapember-cli-bootrap-sassy

尽管前者为大多数bootstrap功能实现了ember组件,并通过其自己的实现“替换”了原始的bootstrap.js,但对于后者,看来我仍然可以使用所有原始的组件和js实现。

乍一看,我会更熟悉ember-cli-bootrap-sassy,因为我仍然可以使用Web上的所有引导示例,并且拥有“定制”版本的bootstrap.js对我来说似乎有点违反直觉。另外,ember-bootstrap的所有引导功能都没有实现,但是我仍然需要?看来我可能会以使用ember-bootstrap的应用程序结尾,但是对于未实现的事情还使用了各种“变通方法”。

由于我在该领域没有太多经验,因此很高兴获得专家的一些建议和见解。

twitter-bootstrap ember.js ember-cli ember-bootstrap

6
推荐指数
1
解决办法
100
查看次数

相互冲突的验收测试

我的应用程序中有一个问题,其中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),但是第二次测试仍然每隔一次运行测试失败.

acceptance-testing qunit ember.js ember-data ember-cli

5
推荐指数
1
解决办法
321
查看次数

如何将ember cli中的base/root url从默认根'/'更改为'/ home'?

我已经生成了一个'home'路线,我想将我的基本网址'/'更改为'home'我尝试将这行代码添加到router.js

App.Router.reopen({
  rootURL: '/blog/'
});
Run Code Online (Sandbox Code Playgroud)

我也尝试将config/environment.js中的base-url设置为'/ home /'

ember.js ember-cli

5
推荐指数
1
解决办法
2532
查看次数