0

機能テストの作成中にメソッド呼び出しをトリガーする際に問題が発生しています。チンパンジーのターミナル ログに実際にエラーが表示されることはありませんが、server.call 行でエラーが強調表示されます。これは、アプリのフォルダー構造 (これは大まかにLetterpressに基づいています)、または呼び出しが定義されてからトリガーされる順序に関連している可能性があると思います。メソッド呼び出しを main.js ファイル (アプリのルート フォルダー内) に移動すると、問題なく動作します。

hooks.jsパス: /app/tests/cucumber/features/support/hooks.js

(function(){
    module.exports = function() {
        this.Before(function() {
            console.log("server calling");
            server.call("fixtures/resetUsers"); //test stops here
        });
    };
})();

フィクスチャ.js /app/packages/fixtures/fixtures.js

(function(){
    'use strict';

    Meteor.methods({
        "fixtures/resetUsers": function() {
            Meteor.users.remove({});
        }
    });
})();

package.js /app/packages/fixtures/packages.js

Package.describe({
    name: 'forum:fixtures',
    version: '0.0.1',
    summary: '',
    debugOnly: true
});

Package.onUse(function(api) {
    api.versionsFrom('1.2.1');
    api.use('ecmascript');
    api.addFiles('fixtures.js', 'server');
});

注: 私はもともと、パッケージ フォルダーにラップされたフィクスチャ フォルダーを持っていませんでした (そのときはまだ機能しませんでした) が、そうすることを勧めた Chimp.js の開発者である @Xolv.io によるこの投稿に出会いました。

4

2 に答える 2

1

新しいチンパンジーでは、次のものを使用できます。

server.execute(function() {
  // code you put here will run on the server
});

例については、このリポジトリを確認してください: https://github.com/xolvio/automated-testing-best-practices/

于 2016-02-12T00:03:02.177 に答える
0

サンプル リポジトリで流星メソッド 'something' を定義すると、server.call('something') として呼び出すことができます。標準メソッド定義 (メテオ メソッドでさえありません) がある場合、xolvio:backdoor を使用して、something2=function(){} と言うと、server.execute('something2') を実行できます。( --ddp スイッチでチンパンジーを呼び出す)

于 2016-02-28T04:00:40.237 に答える