fluentassertions c# unit-testing lambda nunit fluent-assertions

fluentassertions c#



¿Cómo usar las Afirmaciones fluidas para probar la excepción en las pruebas de desigualdad? (1)

Puedes probar este enfoque.

[Test] public void GreaterThan_NullAsRhs_ThrowsException() { var lhs = new ClassWithOverriddenOperator(); var rhs = (ClassWithOverriddenOperator) null; Action comparison = () => { var res = lhs > rhs; }; comparison.Should().Throw<Exception>(); }

No se ve lo suficientemente ordenado. Pero funciona.

O en dos lineas

Func<bool> compare = () => lhs > rhs; Action act = () => compare();

Intento escribir una prueba unitaria para un operador mayor que el reemplazado usando Afirmaciones fluidas en C #. Se supone que el operador mayor que en esta clase arroja una excepción si cualquiera de los objetos es nulo.

Por lo general, cuando utilizo Afirmaciones fluidas, usaría una expresión lambda para poner el método en una acción. Luego ejecutaría la acción y usaría action.ShouldThrow<Exception> . Sin embargo, no puedo entender cómo poner un operador en una expresión lambda.

Preferiría no utilizar NUnit''s Assert.Throws() , Throws Constraint o el atributo [ExpectedException] por cuestiones de coherencia.