git remote update origin --prune
jueves, 3 de diciembre de 2020
jueves, 17 de septiembre de 2020
miércoles, 12 de agosto de 2020
Mutate Testing en javascript
En la comunidad de aprendices de LeanMind se comentó la posibilidad de introducirse en el mutating testing en javascript.
Hace unos meses terminé de leerme el libro de Carlos Blé sobre TDD y me apunté para estudiar mutating testing.
Lo primero que vi fue este video de Carlos Buenosvinos porque no sabía absolutamente nada.
Encontré varias librerías para hacer mutate testing con javascriot, pero la que más me convenció fue Stryker, porque tiene un activa comunidad que sigue desarrollando. Tiene tests y el código que estuve mirando muy por encima, no me pareció malo.
Me encontré con un video de codemanship que me ayudó muchísimo a entender con más profundidad el mutate testing y la librería Stryker.
Yo creo que esta práctica te ayuda a encontrar casos no contemplados, para generar una red de pruebas en las que tengamos más confianza. Creo que se puede hacer uso de esta práctica una vez que tengamos ya terminada el funcionalidad. No creo que una buena idea lanzarlos cada vez que hagamos un cambio en el código. Creo que es algo a tener en cuenta para nuestros desarrollos, igual que tenemos un analizador de código estático u otros elementos que nos ayudan con nuestros código.
viernes, 17 de abril de 2020
create a super-user in postgres
=# SELECT usename FROM pg_user;
=# ALTER USER <user_name> WITH SUPERUSER; ALTER ROLE
=# \du
martes, 14 de abril de 2020
Técnica de las costuras y testear clases estáticas.
--> SUT
public class LoginManager
{
private IReadOnlyCollection<string> users;
public LoginManager()
{
users = new[] { "john", "clare", "Mary", "Tom" };
}
public bool IsLoginOk(string user, string password)
{
log(user);
return users.Contains(user);
}
protected virtual void log(string user)
{
Logger.Log(user);
}
}
public static class Logger
{
public static void Log(string message)
{
}
}
--> Test
public class LoginManagerShould
{
private LoginManagerTesteable loginManager;
[SetUp]
public void SetUp()
{
loginManager = new LoginManagerTesteable();
}
[Test]
public void return_false_when_user_is_empty()
{
var result = loginManager.IsLoginOk(String.Empty, "password");
Assert.IsFalse(result);
}
[Test]
public void return_false_when_user_is_null()
{
var result = loginManager.IsLoginOk(null, "password");
Assert.IsFalse(result);
}
[Test]
public void return_true_when_user_is_valid()
{
var result = loginManager.IsLoginOk("Tom", "password");
Assert.IsTrue(result);
}
}
class LoginManagerTesteable : LoginManager
{
protected override void log(string user)
{
}
}
install openjdk-13
add a repository -> sudo add-apt-repository ppa:openjdk-r/ppa
install openjdk-13 -> sudo apt install openjdk-13-jdk
domingo, 5 de abril de 2020
procedural polymorphism
And this post
The main idea behind this concept is replace the same kind of conditions by objects. Because with this conditions we are mixing two different concepts (breaking single responsibility principal).
I've applied this concept in this project