Detaillierte Erläuterung des Java Junit-Eintragsfalls (Code)
Gehen Sie direkt zur Code-Demonstration:
Sie haben beispielsweise ein Array geschrieben ListeKlassenmethode:
public class ArrayList implements List { private int size = 0; private Object[] elementData = new Object[100]; public void add(Object o){ } public void add(int index, Object o){ } public Object get(int index){ return Object; } public Object remove(int index){ return Object; } public int size(){ return -1; } }
Was soll ich tun, wenn ich es jetzt testen möchte? Zu diesem Zeitpunkt kann das Junit-Tool verwendet werden.
Zuerst erstellen wir eine Junit-Klasse:
Wenn Sie mit der rechten Maustaste direkt auf die gewünschte Klasse klicken zum Testen Sie können die Testmethode direkt überprüfen, z. B.:
Dann können Sie direkt mit dem Hinzufügen von Methoden beginnen:
public class ArrayListTest { // 这里的@Test是必须的注释,就是告诉JUnit这里就是一个测试方法 @Test public void testGet() { static Object[] Data = new Object[]{1,2,3,4,5,6,7,8}; ArrayList test; // 添加数据到test中 ......... ......... //测试test 这里要说一下, //出了要assertEqual 判断值是否相等的话,其实还有assertFalse,assertNull等方法判断 assertEqual(Data[1],test.get(1)); } }
Ja, das stimmt, das ist es einfach. Wenn es kein Problem mit Ihrer Klasse gibt, sollten Sie in der Lage sein, ein Bild wie dieses zurückzugeben:
Haben Sie jedoch festgestellt, dass, wenn Sie andere Methoden testen, wie z Hinzufügen und Entfernen. Es ist erforderlich, dass eine ArrayList vorab mit Daten gefüllt ist. Muss ich dies jedes Mal tun, wenn ich einen Test durchführe?
Das ist zu überflüssig. Zu diesem Zeitpunkt hat JUnit seinen eigenen cleveren Trick:
public class ArrayListTest { static Object[] Data = new Object[]{1,2,3,4,5,6,7,8}; ArrayList test; //这个before注释可以理解成: //在执行每个@Test修饰的方法前都先要执行这个setUp,等于前置条件一样 @Before public void setUp() throws Exception{ test = new ArrayList(); for(Object data: Data){ test.add(data); } } //test function ; }
Es scheint jetzt fast in Ordnung zu sein, aber was tun, wenn mehrere Testklassen vorhanden sind und diese einzeln ausgeführt werden? Ist das nicht vergleichbar mit dem Erstellen eines Hauptmethodentests?
Daher stellt Junit eine weitere Testsuite-Gruppe zur Verfügung:
//你现在有3个测试类 public class Test1{ @Test public void test(){ //...Test1 } } public class Test2{ @Test public void test(){ //...Test2 } } public class Test3{ @Test public void test(){ //...Test3 } } //创建一个测试套件类(测试套件可以互相叠加的): @RunWith(Suite.class) @Suite.SuiteClasses({test1.class,test2.class,test3.class }) public class SuitTest { //必须是public 修饰的,空类 }
Zusätzlich zu den oben geschriebenen Kommentaren gibt es tatsächlich einige, auf die ich aber noch nicht näher eingehen werde. (Du bist zu dreckig, um diese zu benutzen, lauf weg...), ich werde es veröffentlichen, damit die Leser es sich ansehen können:
Das ist alles, es ist nur ein Einleitung Das ist alles. Es gibt keine fortschrittliche Technologie oder Denkweise. Einfach: -/.
Ich möchte noch einen letzten Satz sagen:
Testfälle werden verwendet, um zu beweisen, dass Sie nicht falsch liegen, und nicht, um zu beweisen, dass Sie Recht haben.
Ich persönlich denke, dass mir das wirklich aus dem Herzen spricht.
Das obige ist der detaillierte Inhalt vonGrafischer Java-Junit-Eintragsfall (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!