public void LogLoaderが例外を送出するときAnalyzeExceptionが再送出される() { // スタブの動きを指定してあげる //See: http://wrightthisblog.blogspot.jp/2011/03/using-rhinomocks-quick-guide-to.html var stub = MockRepository.GenerateMock<ILogLoader>(); stub.Stub(p => p.Load("test")).Throw(new System.IO.IOException("hoge")); // スタブを渡す LogAnalyzer sut = new LogAnalyzer(stub); Assert.That(() => sut.Analyze("test"), Throws.Exception.TypeOf<AnalyzeException>() .And .Message.EqualTo("hoge") .And .InnerException.TypeOf<System.IO.IOException>() // 試しに、違う例外を指定してあげると、レッドになることを確認 //.InnerException.TypeOf<System.IO.DirectoryNotFoundException>() // -> OK:違う例外と認識される ); }
public void LogLoaderが例外を送出するときAnalyzeExceptionが再送出される() { var stub = Substitute.For<ILogLoader>(); stub.When(x => x.Load("test")) .Do(x => { throw new System.IO.IOException("hoge"); }); LogAnalyzer sut = new LogAnalyzer(stub); Assert.That(() => sut.Analyze("test"), Throws.Exception.TypeOf<AnalyzeException>() .And .Message.EqualTo("hoge") .And .InnerException.TypeOf<System.IO.IOException>() // 試しに、違う例外を指定してあげると、レッドになることを確認 // ただし、Rhino.Mocks よりエラーメッセージが分かりにくい // エラーが途中で切られているような感じ // 結果が長すぎるのかな... //.InnerException.TypeOf<System.IO.DirectoryNotFoundException>() // -> OK:違う例外と認識される ); }