różnice między 2 klasami JUnit
Framework JUnit zawiera 2 Assert
klasy (oczywiście w różnych pakietach), a metody na każdej z nich wydają się być bardzo podobne. Czy ktoś może wyjaśnić, dlaczego tak jest?
Klasy, o których mówię, to: junit.framework.Assert
Oraz org.junit.Assert
.
5 answers
Stara metoda (JUnit 3) polegała na oznaczaniu klas testowych przez rozszerzenie junit.framework.TestCase
. To odziedziczyło junit.framework.Assert
siebie i swoją klasę testową zyskało możliwość wywoływania metod assert w ten sposób.
Od wersji 4 JUnit, framework używa Annotations
do oznaczania testów. Więc nie musisz już przedłużać TestCase
. Oznacza to jednak, że metody assert nie są dostępne. Ale możesz dokonać statycznego importu nowej klasy Assert
. Dlatego wszystkie metody assert w nowej klasie są metodami statycznymi. Więc ty można zaimportować go w ten sposób:
import static org.junit.Assert.*;
Po tym imporcie statycznym, możesz użyć tej metody bez prefiksu.
Przy przeprojektowaniu przenieśli się również do nowego pakietu org.junit
, który jest zgodny z normalnymi konwencjami nazewnictwa pakietów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-23 11:23:38
JUnit 3.X: junit.framework.Assert
org.junit.Assert
Preferuj najnowszą wersję, szczególnie podczas uruchamiania JDK5 i wyższych z obsługą adnotacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-10 13:20:02
Istnieje w rzeczywistości zmiana funkcjonalna: org.junit.Assert
będzie narzekać, jeśli użyjesz dwuargumentowego assertEquals()
z float
lub double
, podczas gdy junit.framework.Assert
będzie cicho autobox go.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-31 08:56:47
Uważam, że refaktoryzacja z junit.framework
do org.junit
i junit.framework.Assert
jest utrzymywana dla wstecznej kompatybilności.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-14 19:00:35
Zrobiłem przybliżone porównanie kodu źródłowego i nie ma żadnych poważnych zmian. Wiele komentarzy zostało dodanych w org.junit.Assert
, a niektóre refaktoryzacje zostały wykonane. Jedyną zmianą jest porównanie z Arrays
. Są pewne czyszczenie kodu, ale nie ma (imho) żadnych zmian funkcjonalnych .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-23 10:52:50