Un ejemplo de como cambia un test usando estas extensiones
Test usando MsTest sin extensiones
[TestMethod]
public void should_change_password()
{
var username = "username";
var originalPassword = "original";
var newPassword = "newPassword";
var user = new User { Password = originalPassword };
mockRepository.Setup(r => r.GetUser(username))
.Returns(user);
bool result = accountService.ChangePassword(
username, originalPassword, newPassword);
Assert.IsTrue(result);
Assert.AreEqual(newPassword, user.Password);
mockRepository.Verify(r => r.Save());
}
ahora esta es la misma prueba utilizando Sharp TextsEx
[TestMethod]
public void should_change_password()
{
var username = "username";
var originalPassword = "original";
var newPassword = "newPassword";
var user = new User { Password = originalPassword };
mockRepository.Setup(r => r.GetUser(username))
.Returns(user);
bool result = accountService.ChangePassword(
username, originalPassword, newPassword);
result.Should().Be.True();
user.Password.Should().Be.EqualTo(newPassword);
mockRepository.Verify(r => r.Save());
}
estas son las lineas que cambian de:
Assert.IsTrue(result);
Assert.AreEqual(newPassword, user.Password);
a
result.Should().Be.True();
user.Password.Should().Be.EqualTo(newPassword);
Se escribe mas sin embargo queda mas descriptivo cual es la intensión de la prueba ademas de que tenemos la ventaja que intellisense nos ayuda a completar la aserción.
En lo personal me cuesta un poco acostumbrarme a no ver la clase Assert al final de los metodos, pero debo reconocer que el test es mas claro así.
a mi me recontra-patea el higado ver la verbosidad de codigo asi, jaja
ResponderEliminarpero en fin, cuestion de estilos
jaja si, al principio también pensé que era mucho código innecesario.
ResponderEliminarLe mostré este código a gente que no hace unit test y les gusto mas la opción verbosa, entendieron mas la idea del TDD.
De acuerdo en lo que comentas es cuestión de gustos.
Gracias por el feedback
Yo uso NUnitEx desde hace un tiempo que también son de Fabio y me encanta la verbosidad. Hace que se vea mas claro y es mucho mas intuitivo de escribir.
ResponderEliminarAhora probá a extender #TestsEx y probá a extender, con customs asserts, a MsTests... despues contame ;)
ResponderEliminar