2013-12-16 18 views
6

Ho alcuni metodi di annullamento e ho bisogno di testarli, ma non sono sicuro di come farlo. So solo come testare metodi che restituiscono qualcosa, usando Assert. Qualcuno sa come farlo? Ragazzi, conoscete alcuni collegamenti con esercizi in questo stile?Come posso testare metodi void?

+0

Se i metodi non fanno nulla che puoi osservare esternamente, che lavoro utile stanno facendo? –

risposta

10

È possibile verificare due cose:

  • cambia stato dopo la chiamata al metodo vuoto (test basato sullo stato)
  • L'interazione con le dipendenze durante chiamata di metodo void (test di interazione)

Primo approccio è semplice (campione NUnit):

var sut = new Sut(); 
sut.Excercise(foo); 
Assert.That(sut.State, Is.EqualTo(expectedState)); // verify sut state 

secondo approccio richiede s mocks (Moq del campione):

var dependencyMock = new Mock<IDependency>(); 
dependencyMock.Setup(d => d.Something(bar)); // setup interaction 
var sut = new Sut(dependencyMock.Object); 
sut.Excercise(foo); 
dependencyMock.VerifyAll(); // verify sut interacted with dependency 

Beh, si può anche verificare se sono gettati eccezioni appropriate.

Problemi correlati