这是我面临的问题。有我正在处理的代码。代码大多是用带有 Haml 视图文件的 Rails 编写的典型 MVC。
该应用程序的一部分是利用 AngularJS 在浏览器中执行所有很酷的 MVC。
这里没有问题。
为了使用应用程序的这一部分,用户必须登录,这里出现了问题:
我注意到以下有趣的行为:
如果我指示我的测试去并使用 chrome 访问登录(或任何其他)页面
beforeEach(function() {
browser().navigateTo('/help');
});
通过以下测试:
it('should scream for help', function() {
expect(element('#test').text()).toMatch('Help!');
});
和 HTML
<div>
<h1>Help</h1>
<p id="test">Help!</p>
</div>
我得到的是冻结的浏览器,其余的测试没有执行。现在,在我向网站元素添加角度的那一刻:
<div ng-app>
<h1>Help</h1>
<p id="test">Help!</p>
</div>
测试按预期运行(红色和绿色)。
这导致我的问题是我几乎不知道如何登录我的用户(使用“之前所有”块),以便我可以愉快地执行我的角度功能测试。
对于非 JavaScript 的东西,我使用 RSpec 和 Capybara,我可以方便地调用 sign_in 用户。
有人知道如何登录用户(使用非语言页面)吗?也许有更好的方法来处理这个测试?我正在考虑使用 PhantomJS,就像您在 Railscasts 第 391 集中看到的那样,但我想使用 Google 推荐的工具。我不够聪明,无法重新发明轮子:)。
高度赞赏所有建议。