2017-11-21 5 views
0

Meteorでテストを追加しようとしています。テストをフォルダ 'imports'に追加しました。私は、メソッドを呼び出し、その結果をログに記録しようとしたが、私は次のエラーを取得Meteorでのテスト

import { Meteor } from 'meteor/meteor'; 
 
import { chai } from 'meteor/practicalmeteor:chai'; 
 

 
if (Meteor.isClient) { 
 
    describe('Client Tasks',() => { 
 
    describe('methods',() => { 
 
     it('can delete owned task',() => { 
 
     Meteor.call('getVideoData', function (error, res) { 
 
      if (error) console.log('error', error) 
 
      console.log('ok', res); 
 
     }) 
 
     }); 
 
    }); 
 
    }); 
 
}

:コンソールログから

There is no route for the path: /

結果です。これは、テストファイルであります:

error {"isClientSafe":true,"error":404,"reason":"Method 'getVideoData' not found","message":"Method 'getVideoData' not found [404]","errorType":"Meteor.Error"}

および

ok undefined

メテオールをバックエンドに、リアクションをフロントエンドに使用しました。

テストファイルで何かが見つからないのでしょうか、それとも何か他のものに関係していますか?

これは、あなたが見ている当面の問題は"Method 'getVideoData' not found"あるレポgithub

答えて

0

へのリンクです。これは、meteor testを実行すると、具体的にはimportのモジュールのみが読み込まれるためです。 It does not eagerly load your projectは、地元の開発モードで流星を提供する際に慣れているためです。 Meteorchaiをこのテストにインポートしただけなので、テストでは、プロジェクト内の他のファイルに書き込んだメソッドについては何も知りません。

しかし、これは、フロントエンドとバックエンドを実行しないため、フロントエンドをテストするときにサーバーからデータを取得する方法としてテストできないという点で、より根本的な問題が発生します。代わりに、フロントエンドをテストするときに、Meteor.call('getVideoData')への呼び出しをスタブ/モックする必要があります。実際にできることは、in this exampleのように呼び出され、自分の偽の戻り値データを供給するということです。

次に、メソッドを検証するために別々のバックエンドテストを書く必要があります(そして、呼び出される区画化された関数が適切なデータを適切に取得していることを望みます)。

関連する問題