4

コントローラーの単体テストを行いたいのですが、Global.asax.cs ファイルで、JSON フォーマッター、カスタム ヘッダー、AutoMapper マッピングなどを登録する必要があります。VS Unit テスト関数は API ではなく DLL によってコントローラーをテストしているため、HttpApplication は作成されず、多くのコードがテストに失敗します。どうすればこれを修正できますか?

また、JsonFormatter の出力をテストする最も簡単な方法は何ですか。それは実際にはコントローラーの一部ではなく、例外の原因になる可能性もあります。

4

2 に答える 2

2

同じ問題がありました。autoMaopper の場合、MapperConfig.Initialize(); を実行しました。私の単体テストの Setup メソッドで (NUnit を使用しています)

「WebApiConfig.Register(GlobalConfiguration.Configuration);」も呼び出しています。私のセットアップメソッドでは、私のコントローラーで Configuration.Services.GetTraceWriter() を呼び出すと、null 参照例外が返されます。だから私はまだそれを手伝うことはできません.

于 2013-10-24T14:34:19.093 に答える
0

コントローラーの単体テストを行うには、テスト スイートで API DLL を参照し、メソッドを直接実行します。

さらに統合テストを行い、ルーティングとマッピングが期待どおりに機能していることを確認するために、テスト クラスで WebApi への HttpClient を作成し、応答を確認します。
次の記事では、.NET クライアントから webApi 関数を呼び出す方法の概要を説明しています: http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from -ネットクライアント

于 2012-12-10T18:10:31.403 に答える