2017-07-13 1 views
3

J'ai une méthode sur une interface:MOQ: exception Lancer qui a été adoptée dans une méthode

void HandleError(MyClasss c, object o, Exception e); 

Je veux moquer cela avec MOQ, et sur les paramètres jeter l'exception e fourni.

Quelque chose comme:

_mock.Setup(a => a.HandlreError(It.IsAny<MyClass>(), It.IsAny<object>() 
    , It.IsAny<Exception>())).Throws([the 'any' exception]) 

Répondre

4

Vous pouvez utiliser une action de rappel qui est appelé avec les paramètres passés à l'objet moqué:

_mock 
.Setup(a => a.HandlreError(It.IsAny<MyClass>(), It.IsAny<object>(), It.IsAny<Exception>())) 
.Callback((MyClass c, object o, Exception e) => { throw e; }); 
+0

l'action @Nkosi sera appelée lors de l'exécution de MethodCall Mock, le même endroit où l'exception de 'Throws' est lancée –