2010-09-29 2 views
1

цитата из «Искусства модульного тестирования» книга:Как исключить прорыв через try catch block?

В Rhino Mocks строгие издевается создаются путем вызова метода StrictMock . Неожиданные исключения вызовов метода всегда будут выбрасываться, , даже если ваш тест содержит глобальное предложение try-catch, которое, по вашему мнению, будет ловить такое исключение, выведенное из рамки изоляции.

Так как же я могу реализовать это поведение в своей собственной программе?

ответ

0

Одним из способов может быть реализация рамок перехвата, например Unity.Interception (другие также существуют, например, из замка).

Использование Unity.Interception Вы можете написать реализацию ICallHandler, который имеет Invoke метод, где вы можете захватывать и повторно бросать исключения:

public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext) 
{ 
    var methodReturn = getNext().Invoke(input, getNext); 

    // did the method raise an exception? 
    if (methodReturn.Exception != null) 
    { 
     // handle it... re-throw it if necessary... 
    } 
} 

Конечно вникая в исходный код Rhino.Mocks будет быть самым прямым способом сделать это. По крайней мере, используйте Reflector и просмотрите dll.

1

Вы никогда не должны иметь этот тип сценариев в своем приложении, так как вы не должны ловить глобальными исключениями. Вы должны улавливать только те исключения, которые вы собираетесь обрабатывать, все остальное должно быть разрешено пузыриться.

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

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