2016-09-02 6 views
2

は、私は現在のようなコードを持って、空の文字列を返す:私は私が期待する応答を取得、このモックHTTPクライアントを使用して、部品番号HTTPClientの二度目

var fieldBoundary = Properties.Resources.TestFieldBoundary; 

httpClient.Setup(
    x => 
     x.GetAsync(It.Is<Uri>(url => url.AbsoluteUri == APIUrl.AbsoluteUri + <my url>))) 
    .Returns(
     Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK) 
     { 
      Content = new StringContent(Encoding.Default.GetString(fieldBoundary)) 
     })); 

を通じて初めて。しかし、同じモックオブジェクトで同じURLを2回呼び出すと、応答は成功しますが、応答は空の文字列または長さゼロのバイト配列になります。これがどのように異なったMoq'dになるかもしれないかに関するアイデア?

答えて

2

代わりにReturmsに機能を使用するように変更してください。

反復呼び出しで同じインスタンスを返す代わりに、模擬メソッドを呼び出すたびに関数を呼び出します。そのため、2度目の呼び出しを行ったときに、文字列コンテンツストリームポインタがすでに最後になっていたのはこのためです。