Lançamos recentemente o xUnit ++ , especificamente como uma alternativa ao Google Test e à Boost Test Library (veja as comparações ). Se você conhece o xUnit.Net, está pronto para o xUnit ++.
#include "xUnit++/xUnit++.h"
FACT("Foo and Blah should always return the same value")
{
Check.Equal("0", Foo()) << "Calling Foo() with no parameters should always return \"0\".";
Assert.Equal(Foo(), Blah());
}
THEORY("Foo should return the same value it was given, converted to string", (int input, std::string expected),
std::make_tuple(0, "0"),
std::make_tuple(1, "1"),
std::make_tuple(2, "2"))
{
Assert.Equal(expected, Foo(input));
}
Principais características:
- Incrivelmente rápido: os testes são executados simultaneamente .
- Portátil
- Registro de teste automático
- Muitos tipos de asserção (o Boost não possui nada no xUnit ++)
- Compara coleções nativamente.
- As afirmações vêm em três níveis:
- erros fatais
- erros não fatais
- avisos
- Registro de afirmação fácil :
Assert.Equal(-1, foo(i)) << "Failed with i = " << i;
- Registro de teste :
Log.Debug << "Starting test"; Log.Warn << "Here's a warning";
- Luminárias
- Testes orientados a dados (teorias)
- Selecione em quais testes executar com base em:
- Correspondência de atributos
- Nome da substring correspondente
- Suítes de teste