モック/スタブにはRhinoMocksを使用し、単体テストにはNunitフレームワークを使用しています。
次のクラスがあります
class A
{
private int data = -1;
public void Initialize (int data)
{
this.data = data;
}
public void CallA()
{
if (data == -1) throw new InvalidArgumentException("data has invalid value -1");
try
{
A1("a1");
A2("a2");
}
catch (AException e)
{
throw;
}
catch (Exception e)
{
throw new AException(ErrorCode.UnknownException, e);
}
}
private void A1(string item)
{
}
private void A2(string item)
{
}
}
私は次のテストケースに苦労しています:
InvalidAgrumentException:いずれかの
Initialized
メソッドが呼び出されないか、引数として-1が渡された場合に発生しInitialized
ます。データはプライベートであるため、モックすることはできません(ILウィービングを実行するTypeMockアイソレーターなどのライブラリが使用されるまで)。この例外を発生させるための1つのオプションは、正しいアプローチかどうかわからないメソッドを呼び出すことです。(他の場所からもデータを-1に設定できるため。問題ありませんが、追加の関数呼び出しが必要です。)Initialized
A1が「a1」パラメーターで呼び出され、A2が「a2」パラメーターで呼び出されることを確認します。