0
私は、実行時に例外を投げて設定しようとしているメソッドを持つMockオブジェクトをMoqフレームワークを使用してテストします。実行時にMoqで<T>()をスローして
var mockMySvc = new Mock<IMySvc>();
mockMySvc
.Setup(x=>x.SomeMethod())
.Throws<Exception>();
//Execution of some code
//At the assertions
mockMySvc.VerifyAll();
は、コードは、例外がスローされているにもかかわらずmockMySvc
約すべてexpectionsが満たされたではない文句を言います。私は何かを逃しているのでしょうか、.Throws()
の機能では.VerifyAll()
メソッドが動作しません。
'someMethod()'の範囲内で、私はtry catchブロックを持っています。 tryはcatchブロックにExceptionを投げる必要があります。これが私のコードでセットアップ/スローを通して達成していることです。私のコードは例外を返さないでしょう。あなたが主張したのは、このメソッドが例外をスローするという前提です。 –
私は今理解しています。あなたは実際に 'SomeMethod'メソッドを実行しますか?ここで見て:http://www.syntaxsuccess.com/viewarticle/mock-exceptions-using-moq – FCin
はい、それは私がしようとしている - 例外をシミュレートしています。私は、VerifyAll()によってスローされた例外を検証するべきではなく、正しい種類の例外がログに記録されていることを検証するべきだと考えています。ありがとうございました!それは、私が論理的に間違っていたことを理解する助けになりました。 –