Cześć, właśnie zacząłem bawić się xUnit i robić testy jednostkowe. Do tej pory używałem wbudowanego mechanizmu MS.
Wydaje mi się, że miesza mi się wykonywanie testów jednostkowych z testami integracyjnymi.
Mam taki przypadek: Klasa abstrakcyjna Serializer. Ma takie metody jak WriteInt, WriteString itd. Po niej dziedziczą różne klasy konkretne, dzięki czemu możliwa jest serializacja do binary, SQL, XML i czego dusza zapragnie. Chciałem sobie stworzyć test takiej serializacji.
Chcę przetestować, czy obiekt zwróci to, co zapisze. I teraz nie za bardzo wiem, co mam robić, bo mam wrażenie, że w testy jednostkowe chcę wrzucić integracyjne.
Mam coś takiego:
public class SerializerTests
{
void Serializer_Bool_Write_NoThrow(Serializer s)
{
s.WriteBool("BoolValue", true);
}
bool Serializer_Bool_Read_NoThrow(Serializer s)
{
return s.ReadBool("BoolValue");
}
//i inne na takiej zasadzie
[Fact]
public void BinarySerializerTest_ReadWrite_OK()
{
BinarySerializer bs = new BinarySerializer();
Serializer_Bool_NoThrow(bs);
//i inne
//i teraz odczyt
bool b = Serializer_Bool_Read_NoThrow(bs);
Assert(b);
}
}
Czy to są jeszcze testy jednostkowe, czy już integracyjne? Czy jej sens robić testy jednostkowe do takich klas? Czy w ogóle dobrze posługuje się xUnitem?