2012-04-27 4 views
2

Есть ли способ подключить обратный вызов для каждого метода макета без установки каждого метода? Например.Настройка обратного вызова для каждого вызова метода MOQ

var serviceMock = new Mock<IService>();  
var count = 0; 

//method does not exist, but you get the picture 
serviceMock.CallbackAllMethods(() => { count++; throw new WebException()};) 
+0

Просто интересно - почему вы добавляете обратный вызов ко всем методам какого-либо объекта? –

+0

Я использую Castle.DynamicProxy для добавления поведения повтора к каждому вызову метода класса. Я хочу написать тест, который использует для отражения, чтобы вызвать каждый метод и утверждать, что логика повторения выполнена правильно. Меня не волнует, что аргументы для каждого метода, просто, что он называется. Итак, в двух словах я тестирую Interceptor. –

ответ

1

AutoFixture имеет хорошую интеграцию с Moq и автоматически настраивает методы, подобные этому.

Есть хорошее введение here on Mark Seemann's blog.

+0

Спасибо, выглядит интересно, не уверен, что (или, может быть, как) он делает то, что мне нужно. Я хочу создать Mock и каждый вызов метода для него генерирует исключение, но я не хочу настраивать каждый метод? –

+1

Если вам просто нужен каждый метод для исключения исключений, вы можете создать строгий макет, и он будет использовать для любых методов, не настроенных с ожиданием. – scottm

+0

Хороший вопрос, но мне нужно сделать еще одну работу в делегате и выкинуть различные типы исключений. Вопрос отредактирован соответствующим образом. –

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