Ответ 1
В группе RhinoMocks уже существует поток .
GenerateMock создает динамический макет. Динамический макет позволяет вызовам, которые не указаны (= ожидается). Если это произойдет, оно просто возвращает значение null (или значение по умолчанию для типа возврата).
Примечание: Repeat - это спецификация поведения (например, Stub), а не ожидание, даже если оно указано в ожидании.
Если вы хотите избежать более определенного количества вызовов, вы можете написать:
[Test]
public void uhh_what()
{
var a = MockRepository.GenerateMock<IPrebuiltNotifier>();
a.Expect(x => x.Notify()).Repeat.Once();
a.Stub(x => x.Notify()).Throw(new InvalidOperationException("gotcha"));
a.Notify();
// this fails
a.Notify();
a.VerifyAllExpectations();
}
или
[Test]
public void uhh_what()
{
var a = MockRepository.GenerateMock<IPrebuiltNotifier>();
a.Notify();
a.Notify();
// this fails
a.AssertWasCalled(
x => x.Notify(),
o => o.Repeat.Once());
}