これは私のユニットテストです:
[TestCategory("Repo")]
[TestMethod]
[ExpectedException(typeof(System.ServiceModel.FaultException))]
public void RepoUnitTest_ExpectError()
{
var repo = new CreateClientRepository(ClientServiceWrapper);
IClientObject input = new ClientObject
{
ClientId = 0,
ClientName = null
};
repo.CreateClient(input);
}
クライアント リポジトリに無効な入力を提供すると、サード パーティのクライアント サービスが呼び出され、クライアント サービスがエラーをスローすることが予想されます。また、クライアント サービスも例外をスローしますが、期待どおりではありません。「System.ServiceModel.FaultException」を期待していますが、次のようになります。
Test method RepoUnitTest_ExpectError threw exception
System.ServiceModel.FaultException`1[[System.ServiceModel.ExceptionDetail, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],
but exception System.ServiceModel.FaultException was expected.
「ExpectedException」に何を入れればよいかわからないため、この単体テストは正しく予想される例外で合格します。