2017-12-13 11 views
1

私はアプリケーションでテストする必要のあるエンドポイントから呼び出されたサービスを模擬するためにNock(https://github.com/node-nock/nock)を使っています。私が知りたいNockでモックして、同じホストで特定のルートのみをモックします。

:エンドポイントの実装では、私はそのようなこの基礎となるサービスの複数の時間を呼び出していますそれらのうちの1つだけをモックすることが可能ならば。これを言ってみましょう: http://samehost/specificrsc2/

現在、私はそれを達成できません。私はこのようなエラーが発生しますので:私は基礎となるサービスをからかっていますか

'FetchError: request to http://samehost/specificrsc1/ failed, reason: 
Nock: No match for request {\n "method": "GET",\n "url": 
"http://samehost/specificrsc1/", 

ザッツ:

const mockUnderlyCall = nock('http://samehost'); 
mockUnderlyCall.get('/samehost/specificrsc1').reply(200, mockData) 

を私も試してみてください。

const mockUnderlyCall = nock('http://samehost/samehost/specificrsc1'); 
mockUnderlyCall.get('').reply(200, mockData) 

ありがとうございます!

+0

@OP:私は同じ問題に直面しています。回避策を見つけましたか? – eol

+0

@eolいいえ、私たちはすべてのエンドポイントを模擬しなければなりませんでしたが、タスクを単純化するために、node-replay(https://github.com/assaf/node-replay)というフレームワークを使用しました。あなたの下のサービス。多分それがあなたを助けることができます。 – Jbeat

答えて

1

私はそれだけではい、allowUnmockedオプションを使用したもの

のONEを模擬することが可能ですかどうかを知りたいです。

const mockUnderlyCall = nock('http://samehost', {allowUnmocked: true}); 

注:これは、nockのdocumentationに記載されています。

関連する問題