2016-11-30 8 views
0

this httpclientとhttpserverはMVC APIを使ってテストを統合しますが、500エラーが発生するため、私の動作に内部エラーはありませんフィドラーの間。私のコードは、refererとして非常に簡単です、私はそれらを貼り付けました。私はオリジナルの質問にコメントする十分な評判がないので、ここで新しい質問をしました。httpclientとhttpserverを使用してMVC Web APIをテストするとエラーが発生します

私のコントローラのアクションあなたがHttpClientのデフォルトコンストラクタをテストする必要があります

[TestMethod] 
    public async Task InjectDocumentE2ETest() 
    { 
     var config = new HttpConfiguration(); 
     //config.MapHttpAttributeRoutes(); 
     //config.Routes.MapHttpRoute(name: "Default", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional }); 
     WebApiConfig.Register(config); 

     using (var server = new HttpServer(config)) 
     { 

      var client = new HttpClient(server); 
      // client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      string url = "http://localhost/api/InjectDocuments/hello"; 

      var request = new HttpRequestMessage 
      { 
       RequestUri = new Uri(url), 
       Method = HttpMethod.Get 
      }; 

      request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

      using (var response = await client.SendAsync(request)) 
      { 
       Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); 
      } 
      using (var response = await client.GetAsync(url)) 
      { 
       Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); 
      } 
     } 
    } 
+0

Ok()は何をしていますか? –

+0

これを修正しましたか?私はまったく同じ問題を抱えています。 – gijswijs

+0

代わりに、OWIN [TestServer](https://msdn.microsoft.com/en-us/library/microsoft.owin.testing.testserver(v = versus113).aspx)を使用することを検討してください。 –

答えて

0

[HttpGet] 
    [Route("api/InjectDocuments/hello/")] 
    public IHttpActionResult Hello() 
    { 
     return Ok(); 
    } 

私のテスト方法:

var client = new HttpClient(); 
0

あなたは例外自体の詳細情報を取得する必要があります。 CLRによってスローされたすべての例外を解除することで、これを行うことができます。これを行うには、[デバッグ]> [Windows]> [例外設定]をチェックし、[共通言語ランタイム例外]をオンにします。

これでテストははるかに役立ちます。

マインは「トランザクションはメモリ内のストアでサポートされていません」

私は、その特定のエラーチェックhttps://github.com/aspnet/EntityFrameworkCore/issues/2866

詳細はインメモリデータベース .ConfigureWarnings(w => w.Ignore(InMemoryEventId.TransactionIgnoredWarning))

の構成にこれを追加することによって、そのエラーを抑えることができしかし、間違いなくあなたが苦しむことを与えられていないです同じエラー。

関連する問題