Есть ли эквивалент метода Rhino Mocks .Do()
в Moq? Я конвертирую свой код Rhino Mocks в Moq и застрял на следующем:
mockedObject
.Expect(x => x.GetSomething())
.Do((Func<SomeClass>)(() => new SomeClass());
Это не то же самое, что (в Moq, аналогично в Rhino Mocks):
mockedObject
.Setup(x => x.GetSomething())
.Return(new SomeClass());
Когда GetSomething()
вызывается несколько раз в вашем модульном тесте, первый фрагмент кода всегда будет возвращать новый экземпляр. Второй кусок всегда будет возвращать один и тот же экземпляр.
То, что я хочу, - чтобы мой смоделированный объект (с Moq) всегда возвращал новый экземпляр. Поэтому я на самом деле хочу предоставить реализацию метода GetSomething()
для моего смоделированного объекта.
Использование последовательностей не сработает, потому что я не знаю, сколько раз будет вызываться GetSomething()
, и меня это не интересует.