黄瓜测试在没有功能存在的情况下通过

时间:2015-03-18 19:47:53

标签: node.js testing selenium meteor cucumber

我已经开始为使用Cucumber的Meteor应用程序构建测试套件(在http://joshowens.me/cucumber-js-and-meteor-the-why-and-how-of-it/之后)。有些测试在没有任何功能的情况下通过。

例如,测试文件login.feature包括Feature: Allow users to loginScenario: A user can login with valid informationWhen 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说测试通过了858ms。另一个测试通过了url(helper.world.cucumber.mirror.rootUrl + "event/1"),尽管没有这样的网址。

其他测试确实失败了,例如:

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试在getText语句中执行console.log(err)。我的猜测是,当你运行它时,你找不到匹配。

尝试这样的事情:

getText('.user-menu .dropdown-top-level', function (err, username) {
  if (err) {
    callback.fail(err.message);
  }
  assert.equal(username[0], 'userme');
}).