unit testing - unitarias - Equivalente xUnit de Assert.Inconclusive de MSTest
tipos de assert en c# (3)
Lo mejor que se puede hacer hasta que se implemente algo en la biblioteca es usar Xunit.SkippableFact
[SkippableFact]
public void SomeTest()
{
var canRunTest = CheckSomething();
Skip.IfNot(canRunTest);
// Normal test code
}
Esto al menos lo hará aparecer como un caso de prueba amarillo ignorado en la lista.
El crédito va a https://stackoverflow.com/a/35871507/537842
¿Cuál es el equivalente de xUnit del siguiente código MSTest?
Assert.Inconclusive("Reason");
Esto da un resultado de prueba amarillo en lugar del verde o rojo habitual. Quiero afirmar que la prueba no se pudo ejecutar debido a ciertas condiciones y que la prueba debería volver a ejecutarse después de que se hayan cumplido esas condiciones.
Normalmente hago algo como esto,
throw new Exception("Inconclusive");
sí, se muestra como una prueba fallida, pero al menos puede plantear esto en la prueba en ciertos casos no concluyentes.
No he usado la función de skippablefact mencionada anteriormente, pero me parece una gran solución.
Una forma es usar el parámetro Skip
dentro de los atributos de Fact
o Theory
.
[Fact(Skip = "It''s not ready yet")]
public void ReplaceTokensUnfinished()
{
var original = "";
var expected = "";
var tokenReplacer = new TokenReplacer();
var result = tokenReplacer.ReplaceTokens(original, _tokens); // (_tokens is initialised in a constructor)
Assert.Equal(result, expected);
}
Lo que da este resultado cuando se ejecuta: