Ember / Rails端到端测试错误

时间:2016-01-06 21:34:18

标签: ruby-on-rails ember.js ember-cli

我有一个带有Rails后端API的Ember CLI应用程序。我正在尝试通过配置Ember应用程序测试套件来将请求发送到Rails API的副本来设置端到端测试。我的测试工作正常,但我经常遇到以下奇怪的错误:

{}
Expected: true
Result: false

at http://localhost:7357/assets/test-support.js:4519:13
at exports.default._emberTestingAdaptersAdapter.default.extend.exception (http://localhost:7357/assets/vendor.js:52144:7)
at onerrorDefault (http://localhost:7357/assets/vendor.js:42846:24)
at Object.exports.default.trigger (http://localhost:7357/assets/vendor.js:67064:11)
at Promise._onerror (http://localhost:7357/assets/vendor.js:68030:22)
at publishRejection (http://localhost:7357/assets/vendor.js:66337:15)

每当向服务器发出请求时,似乎都会发生这种情况。下面将重新创建此示例测试脚本。这是一个简单的测试,它检查用户是否在没有输入任何电子邮件/密码信息的情况下点击“登录”按钮,他们没有登录。测试通过,但另外我在测试通过之前得到了上述错误。我认为这与连接到Rails服务器有关,但不知道如何调查或修复它 - 我非常感谢任何帮助。

非常感谢。

import Ember from 'ember';
import { module, test } from 'qunit';
import startApp from 'mercury-ember/tests/helpers/start-app';

module('Acceptance | login test', {
  beforeEach: function() {
    this.application = startApp();
  },

  afterEach: function() {
    Ember.run(this.application, 'destroy');
  }
});

test('Initial Login Test', function(assert)
{

  visit('/');

  andThen(function()
  {
      // Leaving identification and password fields blank
      click(".btn.login-submit");

      andThen(function()
      {
        equal(currentSession().get('user_email'), null, "User fails to login when identification and password fields left blank");
      });
   });
});

1 个答案:

答案 0 :(得分:0)

您可以在Chrome或Firefox开发者工具的“网络”面板中查看正在进行请求的内容。至少使用ember-qunit你可以通过让ember-cli在浏览器中运行测试而不是使用Phantom.js /命令行来实现这一点。

这可以帮助你弄清楚它是否正在攻击Rails服务器(URL可能不正确或使用错误的端口号?)

您可能还想查看是否有需要拆除的代码。请记住,在测试环境中使用相同的浏览器实例,因此需要拆除所有对象;需要停止超时/间隔;事件需要不受限制等等。

我们曾经有过几次这样的问题,在生产中,每30秒发送一次AJAX请求的实用程序没有错误,但在测试中它是一个问题,因为它将自己绑定到窗口(在iframe之外)所以它即使在测试被拆除后仍然提出要求。