Mam problem z organizowaniem mojego testu klasy opartego na dla rodziny testów. Załóżmy na przykład, że zaimplementowałem interfejs "słownikowy" i mam do testowania 5 różnych implementacji.Przeróbki testowe ponownego użycia dla rodziny klas
Piszę jedną klasę testową, która testuje interfejs słownika. Ale jak mogę go ładnie wykorzystać, aby przetestować wszystkie moje zajęcia? Do tej pory mam brzydki:
DictType = hashtable.HashDict
W górnej części pliku, a następnie użyć DictType
w klasie testowej. Aby przetestować inną klasę, ręcznie zmieniam DictType
na coś innego.
Jak można to zrobić inaczej? Nie można przekazać argumentów do klas unittest
, więc czy istnieje lepszy sposób?
oh, bardzo ładne, 10x alex – zaharpopov
Próbuję użyć tego wzoru ale dostaję błędy (np. 'TypeError: 'Obiekt NoneType' nie jest wywoływalny), ponieważ framework' unittest' uruchamia testy w kontekście 'MappingTestBase' oraz klas pochodnych. Czy istnieje sposób, aby temu zapobiec? ? – user200783
@PaulBaker, na pewno możesz zbudować zestaw testów, który chcesz uruchomić dość wyraźnie, np. Używając klasy 'TestLoader', zobacz https://docs.python.org/2/library/unittest.html#unittest.TestLoader , np. przez jego podklasę i nadpisanie 'getTestCaseNames', aby zwrócić' [] 'dla klas, których metody testowania nie chcesz uruchamiać, lub możesz udekorować wszystkie metody testowe, aby powrócić, jeśli' self.dicttype jest None '. podejścia działają dobrze. –