2

プロジェクトをテストするために Meteor で Cucumber (xolvio:cucumber@0.20.2_1) を使い始めたばかりですが、ステップ定義内で作成した Meteor.methods スタブから値を返すのに苦労しています。

register-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

});

しかし、私のプロジェクトでこれを行うと、cucumber logs Object [object Object] has no method 'then'.

Meteor.users.findOne({'emails.address': anemail@email.com});ステップ定義内でも試しましたが、エラーが発生していますMeteor is not defined

ヘルプやガイダンスをいただければ幸いです。

編集_getUser巨大なオブジェクトをログに記録していたとき、それは Meteor メソッドが何も返さなかっ たことが原因であることに気付きました。その後Meteor.users.find({}).fetch()、流星キュウリのコレクションにユーザーがいたにもかかわらず、空の配列が返されました。これは、私が経験している別の問題です。

4

1 に答える 1

1

thisまたはを使用する必要はありませんthen。Chimp の最新バージョンは同期であるため、次のようにするだけです。

var user = server.call('_getUser')

registration.jsテストコードベースの一部ではなく、Meteor アプリの一部として持っていることを確認してください。

于 2015-11-17T22:00:45.997 に答える