2012-06-08 5 views
3

Я подделываю IDbConnection и хочу подделать звонок QueryOne<T>() (расширение Dapper), но при этом я получаю NullReferenceException.Как подделать общий вызов метода с помощью FakeItEasy?

Here's мой код:

IDbConnection myConnection = A.Fake<IDbConnection>(); 


A.CallTo(() => myConnection.QueryOne<MyDto>(A<string>.Ignored, <IDbConnection>.Ignored, A<IDbTransaction>.Ignored)) 
.Returns(new MyDto()); 

Возможно ли издеваться общий вызов метода в FakeItEasy или почему я получаю исключение?

Заранее спасибо ...

Christian

ответ

5

Поскольку Щеголеватые используют методы расширения для обеспечения его функциональности и поскольку методы расширения просто фантазии статических методов, я не думаю, что вы будете в состоянии получить это работать. Из того, что я прочитал (см. Это question) FakeItEasy не может перехватывать статический метод.

+0

Действительно, расширения не очень хорошо работают с модульными тестами. Мой совет, используйте интерфейс, который имитирует вызовы dapper, которые вы делаете, и программируйте против этих интерфейсов, что упрощает запись ваших модульных тестов. –

 Смежные вопросы

  • Нет связанных вопросов^_^