Rhinoには自分のメッセージを指定する方法がありません。
RhinoのExpectationViolationExceptionをキャッチし、必要なメッセージを出力する独自のメソッドを記述することができます。
本のラフな例は次のようになります。
public static class RhinoExtensions
{
public static void AssertWasCalledWithMessage<T>(this T mock, Expression<Func<T, object>> action)
{
try
{
mock.AssertWasCalled(action.Compile());
}
catch (ExpectationViolationException)
{
Console.WriteLine(string.Format("{0} was not called with proper parameters or was not called.", (action.Body as MethodCallExpression).Method.Name));
throw;
}
}
}
使用量は次のようになります。
mockBookingService.AssertWasCalledWithMessage(ms=>ms.UnBookFlight(Arg<DateTime>.Is.Equal(dummyDate)));
構文について確認してください。オプション=>の行は、正確に何の後に始まりますか? – pencilCake
@pencilCake、申し訳ありませんが、カンマを忘れました。回答は修正されました。ヘッドアップのおかげで:) –
ありがとう!私はSetupConstraintの可能性を認識していませんでした。一方、アサーションステージで戻り値を設定する機能は、私には少し奇妙に見えます。私は、APIダイエットについて興味があり、今後のバージョン4.0でAyendeが書きました。 – pencilCake