A primeira dica é que no C# você pode fazer o uso da palavra reservada "var" antes da variável que vc está declarando em alguns casos, por exemplo:
Rota rota = new Rota("Rio de Janeiro", "Santiago");
//pode ser substituído por
var rota = new Rota("Rio de Janeiro", "Santiago");
Agora a dica sobre a aula é:
Quando você utiliza o Assert.Contains, você parte do princípio que esse texto nunca vai ser mudado ou que o desenvolvedor/testador escreveu o texto exatamente igual e que não houve eventualmente nenhum erro de digitação ou na hora de colar o texto nos testes.
[Fact]
public void TestandoPrecoNegativo()
{
//Arrange
var rota = new Rota("Rio de Janeiro", "Santiago");
var periodo = new Periodo(new DateTime(2025, 4, 5), new DateTime(2025, 4, 15));
double preco = -100.00;
//Act
var oferta = new OfertaViagem(rota, periodo, preco);
//Assert
Assert.Contains("O preço da oferta de viagem deve ser maior que zero.", oferta.Erros.Sumario);
}
Em vez disso, você pode verificar se a condição a ser satisfeita é verdadeira. No caso, se o preço da oferta for menor que zero, o teste passa.
[Fact]
public void TestandoPrecoNegativo()
{
//Arrange
var rota = new Rota("Rio de Janeiro", "Santiago");
var periodo = new Periodo(new DateTime(2025, 4, 5), new DateTime(2025, 4, 15));
double preco = -100.00;
//Act
var oferta = new OfertaViagem(rota, periodo, preco);
//Assert
Assert.True(preco < 0);
}