2009-09-18 10 views
6

Sto provando a testare una classe abbastanza complessa usando Moq e sto correndo in un problema.moq - come verificare il metodo non è stato chiamato se la classe inceppa le eccezioni

Sto provando a verificare che un metodo NON venga chiamato, e in genere questo è semplice da eseguire impostando MockBehavior.Strict, ma qui tuttavia la classe ha il proprio meccanismo di segnalazione degli errori in modo da ingoiare l'eccezione generata da Moq .

. Il metodo Verify alla fine del test passa anche bene, il che è davvero strano. È un bug in Moq, ci sono soluzioni alternative?

Ho anche provato a impostare un callback su questo metodo e ad eseguire Assert.Fail al suo interno, ma anche questo viene inghiottito, il framework di test (test integrato VS 2008) non viene informato. ..

Sto utilizzando Moq 2.6.1014.1. (non ho ancora il tempo di aggiornare a moq 3)

risposta

11

Beh, questo è imbarazzante, sono riuscito a risolverlo.

In 3.0 si può fare questo:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
             It.IsAny<string>(), 
             It.IsAny<string>(), 
             It.IsAny<object>()), Times.Never()); 

Continuo a non capire il motivo per cui VerifyAll non ha funzionato, ma questo sembra per adattarsi al disegno di legge in ogni caso. Lascerò la domanda, nel caso qualcun altro stia cercando qualcosa di simile.

+0

Si consiglia di ripubblicarlo su http://groups.google.com/group/moqdisc?pli=1 per determinare se si tratta di un bug o comportamento previsto. – TrueWill

Problemi correlati