unit test dodanie obiektu do kolekcji

0

Witajcie. Może podrzucicie mi jakiś pomysł. Mam do stworzenia test jednostkowy dla metody która jedynie dodaje jakiś obiekt do listy. Nie za bardzo mam pomysł jak to zrobić. Nie wiem co "podać" asercji. Jedyne co wymyśliłem to sprawdzenie czy dodany obiekt znajduje się w liście do której go dodajemy. Jak byście do tego podeszli?

Powiedzmy , że blok takiej metody mógłby wyglądać tak:


public void (KlasaX objektx)
{
    list.Add(objektx);
}

list to oczywiście jakaś lista do której dodaje obiekty. Z góry dzięki za podsunięcie pomysłu. Pozdrawiam.

3

Dodaj element i sprawdź czy faktycznie został dodany. Tylko tyle i aż tyle.

0

"i sprawdź czy faktycznie został dodany" - o to chodzi mi w temacie. Jak za pomocą asercji mogę to zrobić .. ;)

1
  1. Moim zdaniem robienie unit testu czegos takiego jak dodanie do listy nie ma najmniejszego sensu (bo nic nie wnosi oprocz code coverage)
  2. Dodaj obiekt i sprawdz czy przejdzie kod Assert(list.count == 1)
1

Nie list.count == 1, bo to o niczym nie świadczy i generalnie niczego nie wnosi poza fałszywymi zgłoszeniami, przy dodawaniu kolejnych.

Ja bym zrobił to tak:

 
list.Add(myObj);
Assert.IsTrue(list.IndexOf(myObj) == list.Count - 1);

Ewentualnie sprawdzenie, czy indexOf jest różny od -1.
Ale tak, jak mówił poprzednik, jeśli to jest zwykła lista, to ona jest już na pewno sprawdzona pod tym kątem i o ile pamięć pozwala na dodanie obiektu, to obiekt będzie dodany. Skup się na testowaniu WŁASNEGO kodu, a nie elementów języka :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1