Sou novo no NUnit (3.4+) e de alguma forma não consigo resolver o problema simples abaixo :)
Quero ter certeza de que os blocos catch estão cobertos na cobertura do Sonar e, para isso, quero escrever um caso de teste Nunit. Tentei algumas coisas, mas nada funcionou para mim e continuei recebendo erro/falha de teste. Este é meu método testável. (Observe que, por algum motivo, não posso alterar os métodos apenas para o caso de teste Nunit.)
public async Task<List<ReturnObjects>> GetData(int Id)
{
try
{
}
catch(Exception)
{
}
Meu caso de teste:
[Test]
public async Task CanCallGetData_Test_ThrowsException()
{
// Arrange</p>
var Id = 927810493;</p>
List<ReturnObjects> objs = null; //I tried making it null, so null reference
//exception will throw.
//Some repo class with mock data</p>
_queryHelperDataMart.Setup(mock => mock.WrapQueryAsync<ReturnObjects>
(It.IsAny<string>(), It.IsAny<IConfiguration>(), It.IsAny<Dictionary<string,
object>>(),
It.IsAny<string>())).ReturnsAsync(objs);
// Act
var result = Assert.ThrowsAsync<Exception>(() => _testClass.GetData(Id));
// Assert
Assert.That(result, ..check exception etc);
}
Continuo recebendo Expected: <System.Exception> But was: null O que estou esquecendo aqui? Além disso, por favor, me diga como escrever um código testável para blocos catch quando não for possível gerar uma exceção real do método de teste?