У меня есть следующий тест, чтобы убедиться, что мой репозиторий вызывает соответствующий сеанс (я переписал его, чтобы выделить реальную проблему):
[Test]
public void Why_Does_This_Fail()
{
var objectUnderTest = new SomeGenericsProblem();
var fakeSession = MockRepository.GenerateMock<ISession>();
fakeSession.Expect(s => s.Query<SomeClass>());
objectUnderTest.NotWorking<SomeClass>();
fakeSession.AssertWasCalled(t => t.Query<SomeClass>());
}
но когда я запускаю тест, я получаю это:
System.InvalidOperationException:
Неверный звонок, последний звонок был
использовался или не был сделан звонок (сделать
уверен, что вы звоните виртуальный
(C #) / метод Overridable (VB)). (C #) / метод Overridable (VB)).
Есть идеи, что я здесь не так делаю? Сеанс, над которым я издеваюсь, - это интерфейс, поэтому имеет , который должен быть виртуальным / переопределенным.
У меня такое ощущение, что это как-то связано с тем, что мой метод Query является универсальным, но я не знаю другого способа выразить то, что я пытаюсь проверить.
Также, если я удаляю часть, которая устанавливает ожидание (то есть эту строку кода:)
fakeSession.Expect(s => s.Query<SomeClass>());
Я получаю другое исключение, которое одинаково смущает меня:
System.InvalidOperationException: Нет
ожидания были настроены, чтобы быть
проверено, убедитесь, что вызов метода
в действии виртуальный (C #) /
вызов метода переопределения (VB.Net) вызов метода переопределения (VB.Net)