Non sono molto bravo a scrivere test di unità, quindi ho un problema.
Ho un binary_search_tree
e sto scrivendo i test per i metodi insert
e contains
:
struct BinarySearchTree {};
TEST(BinarySearchTree, Insert) {
BinarySearchTree t;
t.insert(5);
EXPECT_TRUE(t.contains(5));
}
TEST(BinarySearchTree, Contains) {
BinarySearchTree t;
t.insert(5);
EXPECT_FALSE(t.contains(2);
EXPECT_TRUE(t.contains(5);
}
Come puoi vedere, entrambi sono correlati tra loro e questi casi di test possono essere totalmente uguali perché:
- Testiamo l'inserimento inserendo un elemento e controllando che l'albero lo contenga.
- Testiamo l'esistenza dell'elemento inserendolo e controllando l'albero lo contiene.
Quindi ho 2 opzioni:
- Non scrivere test per contiene perché verrà testato nei test {inserimento, eliminazione, sostituzione, ecc.
- Scrivi quasi lo stesso contenuto in tutti questi test.
Cosa c'è di meglio?