Ho scritto una classe di unit test in C# per il mio progetto MVC.Come gestire l'eccezione generata in NUnit
Il metodo di prova è seguito
[Test]
public void To_Add_DocumentStatusIsNull_ThrowsInvalidOperationException_ServiceTest()
{
try
{
_IDocumentStatusRepositoryMock = new Mock<IDocumentStatusRepository>();
_unitOfWorkMock = new Mock<IUnitOfWork>();
DocumentStatusService documentStatusService = new
DocumentStatusService(_unitOfWorkMock.Object,
_IDocumentStatusRepositoryMock.Object);
DocumentStatus documentStatus;
documentStatus = null;
_IDocumentStatusRepositoryMock.Setup(m => m.Add(documentStatus));
documentStatusService.Add(documentStatus);
Assert.Pass();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
e il metodo Servizio è seguito
public virtual void Add(TEntity entity)
{
try
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
_repository.Add(entity);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
Ora solo non Questo metodo di test è stato superato a causa della classe di servizio gettato ArgumentNullException.So come gestire l'ArgumentNullException o come passare questo test?
Si prega chiunque aiutare
qual è lo scopo di "lanciare una nuova eccezione (e.Message);" nel metodo di servizio? perché non lasci che venga sollevata l'eccezione originale? Non riesco a vedere alcun uso per quella configurazione 'try' /' catch' ...? E non c'è * certamente * nessun punto nel 'try' /' catch' nel test NUnit mostrato - NUnit considera automaticamente le eccezioni come errori, a meno che tu non abbia indicato un'eccezione nota nota –
Mi dispiace, che è scritto per qualche altro scopo e tu sei giusto questo non è corretto. Ora voglio sapere come gestire l'ArgumentNullException nel mio metodo di prova? –