Ниже представлен свободный интерфейс:
public interface IReporter<in T,out TResult>
{
IReporter<T, TResult> Add(T seed);
TResult Prepare();
}
Использование в коде как:
string errorReport = ErrorReporter.Add (исключение).Prepare ();
Контрольный пример теста:
With.Mocks(mockRepository)
.Expecting(() =>
{
Expect.Call(errorReporter.Add(null)).IgnoreArguments();
Expect.Call(errorReporter.Prepare()).Return(string.Empty);
Expect.Call(notifier.Notify(null)).IgnoreArguments().Return(true);
})
.Verify(() =>
{
ITransporter transporter = new Transporter
{
ExpectedArgsLength = 1,
Notifiers = notifiers,
ErrorReporter = errorReporter
};
transporter.Run(new string[] { });
});
Ошибка:
Rhino.Mocks.Exceptions.ExpectationViolationException: IReporter`2.Prepare ();Ожидаемый # 1, фактический # 0.
Если я прокомментирую Expect.Call (errorReporter.Prepare ()). Return (string.Empty);тогда это работает, что не имеет смысла для меня.
Я что-то упустил?Пожалуйста, помогите!