node.js - Cucumber 测试通过但功能不存在

标签 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 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/

相关文章:

javascript - 在 NodeJS 中,如何与另一台可能已关闭的服务器重新建立套接字连接?

node.js - 多个 sailsjs 应用程序在同一端口上运行

windows - Windows Azure开发人员,测试,质量检查环境

python - 如何在 Firefox geckodriver 中使用代理?

python - 当浏览器中有多个带有滚动条的窗口时,如何使用 python selenium 向下滚动

c# - Microsoft Bot Framework - Facebook 集成 - Net Framework

javascript - 在将参数传递到 Jade 文件时,我可以(如何)使用 Jade 速记吗?

Facebook测试用户恶性循环: Publish_actions

javascript - 尝试使用 async/await 而不是 browser.sleep,但它不起作用

linux - 无法在 linux 7 机器上启动 chromedriver