Java cultivation path -- Junit and junit
JUnit super beginner case
Go directly to the Code Demo:
For example, you have now written a method of the ArrayList class:
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; } }
What should I do if I want to test it now? At this time, the Junit tool can be used;
First, create a Junit class:
If you right-click the class you want to test, you can directly check the test method as follows:
Then, you can directly add the method to it:
Public class ArrayListTest {
// Here @ Test is a required annotation, that is, to tell JUnit that this is a Test method @ Test public void testGet () {static Object [] Data = new Object [] {1, 2, 3, 4, 5, 6, 7, 8}; ArrayList test; // Add data to test .................. // test. Let's talk about it here,
// If assertEqual is required to determine whether the value is equal, there are also assertFalse, assertNull and other methods to determine assertEqual (Data [1], test. get (1 ));}}
Yes, that's just that simple. If your class is okay, you should be able to return the following figure:
However, have you found that if you are testing other methods, such as add and remove, there must be an ArrayList with data pre-filled. Do I need to perform this operation every time I perform a test?
This is too redundant. At this time, JUnit has its own tips:
Public class ArrayListTest {static Object [] Data = new Object [] {1, 2, 3, 4, 5, 6, 7, 8}; ArrayList test; // This before annotation can be understood: // execute this setUp Before executing each @ Test modifier, which is equal to the same as the precondition @ Before public void setUp () throws Exception {test = new ArrayList (); for (Object data: Data) {test. add (data) ;}// test function ;}
Now it seems to be almost done, but what should I do when there are multiple test classes and run them one by one? Isn't this the same as creating a main method for testing?
Therefore, Junit provides another test suite group:
// You now have three Test classes: public class Test1 {@ test public void Test (){//... test1} public class Test2 {@ Test public void test (){//... test2} public class Test3 {@ Test public void test (){//... test3 }}// create a test Suite class (the test Suite can be stacked with each other): @ RunWith (Suite. class) @ Suite. suiteClasses ({test1.class, test2.class, test3.class}) public class SuitTest {// must be public-modified, empty class}
In addition to the comments written above, there are actually a lot of comments, but I won't talk about it before I use it. (Too scum to use these, escape ..), I will post it to show the audience:
That's all. It's just getting started. There is no advanced technology or thought. Simple :-/.
I want to share one sentence at the end:
Test Cases are used to prove that you are not wrong, rather than proving that you are right.
I personally think this is really true.
Get it done, retreat (. Required _ parameters ._.)/~~~