Я не уверен, когда это было изменено, но TestControllerBuilder теперь принимает необязательный аргумент IMockFactory<T>
.Проблема, с которой я столкнулся, заключается в том, что если вы не передадите один из них, то по умолчанию сначала используется RhinoMocks, а затем Moq, оба в качестве прокси.Если вы используете StructureMap, как и я, он всегда будет использовать RhinoMocks.Мне бы очень хотелось, чтобы был какой-то флаг, чтобы сообщить TestControllerBuilder, какой из них использовать.
Чтобы заставить строителя использовать Moq, вы можете передать новый класс IMockFactory<T>
, который отражается обратно в Moq.Внутри MvcContrib есть класс, который делает это отлично, но он не доступен для общественности.Я не уверен, почему они не раскрыли его.
Вместо того, чтобы создавать собственную реализацию IMockFactory<T>
, я решил копаться в код MvcContrib и копировать / вставлять MoqFactory и MoqProxy классы в мое собственное решение и передать их в TestControllerBuilder.Это кажется действительно грязным, но оно выполняет свою работу и позволяет мне использовать Moq, как душе угодно.