我已经开始使用 Cucumber 为 Meteor 应用程序构建测试套件(遵循 http://joshowens.me/cucumber-js-and-meteor-the-why-and-how-of-it/)。一些测试在没有任何功能的情况下通过。
例如,测试文件login.feature
包含Feature: Allow user to login
,以及Scenario: A user can login with valid information
和 当我点击登录链接时
在文件 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
有什么想法吗?
最佳答案
尝试在 getText 语句中执行 console.log(err)。我的猜测是您在运行时找不到匹配项。
尝试这样的事情:
getText('.user-menu .dropdown-top-level', function (err, username) {
if (err) {
callback.fail(err.message);
}
assert.equal(username[0], 'userme');
}).
关于node.js - Cucumber 测试通过但功能不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131391/