【发布时间】:2015-03-18 19:47:52
【问题描述】:
我已经开始使用 Cucumber 为 Meteor 应用程序构建一个测试套件(遵循 http://joshowens.me/cucumber-js-and-meteor-the-why-and-how-of-it/)。一些测试在没有任何功能的情况下通过。
例如测试文件login.feature包括Feature: Allow users to login,有Scenario: A user can login with valid information和When I click on sign in link
文件loginSteps.js支持:
this.When(/^I click on sign in link$/, function (callback) {
helper.world.browser.
waitForExist('.at-signup', 7000).
waitForVisible('.at-signup').
click('.at-signup').
call(callback);
});
登录按钮实际上有class="btn btn-default navbar-btn",但 Velocity 说测试在 858 毫秒内通过。另一个测试通过了url(helper.world.cucumber.mirror.rootUrl + "event/1"),虽然没有这样的 url。
但是,其他测试确实失败了,例如:
getText('.user-menu .dropdown-top-level', function (err, username) {
assert.equal(username[0], 'userme');
}).
有错误:
Then I should be logged in Fail
TypeError: Cannot read property '0' of undefined
有什么想法吗?
【问题讨论】:
-
老实说,在没有看到固定装置或插入用户的任何东西的情况下,帮助您修复实际错误是很困难的。目前,Cucumber 的登录内容实际上很棘手,因为在您登录后浏览器会保留 cookie。您必须在测试结束或下一次测试开始时强制退出。
标签: node.js testing selenium meteor cucumber