Usando Valores Aleatórios Para Testes Unitários
Quando escrevo os meus testes unitários não gosto de usar valores fixos no código porque ou acabo por usar sempre os mesmos valores ou, por causa disso, os testes podem passar por coincidência.
Com o passar do tempo, desenvolvi uma classe utilitária para gerar valores aleatórios para usar em testes unitários.
namespace PauloMorgado.VisualStudio.TestTools.UnitTesting
{
public static class RandomGenerator
{
public static bool Boolean();
public static string String();
public static string String(string prefix);
public static short Int8();
public static short Int8(short maxValue);
public static short Int8(short minValue, short maxValue);
public static short Int16();
public static short Int16(short maxValue);
public static short Int16(short minValue, short maxValue);
public static int Int32();
public static int Int32(int maxValue);
public static int Int32(int minValue, int maxValue);
public static TEnum Enum<TEnum>();
public static TEnum EnumFlagsWith<TEnum>(TEnum flagsToAdd);
public static TEnum EnumFlagsWithout<TEnum>(TEnum flagsToRemove);
public static TEnum Enum<TEnum>(int maxValue);
public static TEnum Enum<TEnum>(int minValue, int maxValue);
public static System.Guid Guid();
}
}
Isto é algo que eu gostaria de ver em plataformas de mocks (como Typemock Isolator, Rhino.Mocks ou MoQ).
Ainda é um trabalho em curso, mas se quiserem testar, está na minha MSDN Code Gallery: Random Generator For Unit Testing