私はNUnitとRhino Mocksを使用しています。私はAAA構文を使用し、セットアップ方法ではアレンジとアクトを行い、すべてのテスト方法はアサートです。ご想像のとおりNUnit SetUpでExpectedExceptionが発生する
[TestFixture]
public class When_subSystem_throws_exception
{
SomeClass subject; // System under test
[SetUp]
public void Setup()
{
// Arrange
IDependency dependency = MockRepository.GenerateStub<IDependency>();
dependency.Stub(m => m.DoStuff()).Throw(new Exception()); // This method is called from within SomeMethod()
subject = new SomeClass(dependency);
// Act
subject.SomeMethod("Invalid Input");
}
// Assert
[Test]
public void should_log_an_exception_to_the_logger()
{
// Do stuff to verify that an exception has been logged
}
// More tests
}
は、のsomeMethodのコードは()、ウィッヒは、すべてのテストが(不要な)失敗します(予想通り)例外がスローされます。私はこれを回避することによってこれを行う。
try
{
// Act
subject.SomeMethod("Invalid Input");
}
catch(Exception ex)
{
// Swallow, this exception is expected.
}
しかし、それはちょうど醜いです。私が行うことができるようにしたいと思い何
は
[SetUp]
[ExpectedException] // <-- this works for Test methods, but not for SetUp methods
public void Setup()
{
// etc...
}
ですが、私はそれのような何かを見つけることができません。
何か知っていますか?
例外がスローされたことをどうやって保証できますか? – Simone
@Simoneごめんなさいあなたの言うことを理解できません。 –
例外がスローされたかどうかをテストしたい場合は、どうすればこのようなコードで確認できますか?スローされた場合、スローされない場合と何も変わりません。 – Simone