你如何从Cucumber中的Meteor.methods存根返回

时间:2015-11-17 15:28:37

标签: meteor cucumber meteor-velocity

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

寄存器user.js的

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

registration.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()并返回了一个空数组,即使我的流星黄瓜收集有我的用户,这是我遇到的另一个问题。

1 个答案:

答案 0 :(得分:1)

您不需要使用thisthen,最新版本的Chimp是同步的,所以您只需执行此操作:

var user = server.call('_getUser')

请务必将registration.js作为Meteor应用的一部分,而不是测试代码库的一部分。