2

我刚刚开始使用 Cucumber (xolvio:cucumber@0.20.2_1) 和 Meteor 来测试我的项目,我很难从我在步骤定义中创建的 Meteor.methods 存根返回值。

注册用户.js

this.When(/^he clicks the verification link in his email$/, function () {
        console.log(this.server.call('_getUser'));
});

注册.js

Meteor.methods({
    _getUser: function() {
        return Meteor.users.findOne({'emails.address': 'anyemail@email.com'});
});

日志输出一个看起来像系统状态的巨大对象。我注意到其他地方有人建议

this.server.call('aMethod').then(function(response) {

    // you can use the response here

});

但是当我在我的项目中这样做时,黄瓜日志Object [object Object] has no method 'then'

我也在步骤定义中尝试过Meteor.users.findOne({'emails.address': anemail@email.com});,但我收到了错误Meteor is not defined

任何帮助或指导将不胜感激。

编辑 我意识到当我记录一个巨大的对象时,这是因为 Meteor 方法_getUser没有返回任何东西。然后我尝试Meteor.users.find({}).fetch()并返回一个空数组,即使我的流星黄瓜集合有我的用户,这是我遇到的另一个问题。

4

1 回答 1

1

你不需要使用thisor then,最新版本的 Chimp 是同步的,所以你只需这样做:

var user = server.call('_getUser')

请确保将其registration.js作为 Meteor 应用程序的一部分,而不是测试代码库的一部分。

于 2015-11-17T22:00:45.997 回答