JUnit - Sử dụng Assertion
Quả quyết
Tất cả các xác nhận đều nằm trong lớp Assert.
public class Assert extends java.lang.Object
Lớp này cung cấp một tập hợp các phương thức khẳng định, hữu ích cho việc viết các bài kiểm tra. Chỉ những xác nhận không thành công mới được ghi lại. Một số phương thức quan trọng của lớp Assert như sau:
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | void assertEquals(boolean expected, boolean actual) Kiểm tra xem hai đối tượng / nguyên thủy có bằng nhau không. |
2 | void assertTrue(boolean condition) Kiểm tra xem một điều kiện là đúng. |
3 | void assertFalse(boolean condition) Kiểm tra xem một điều kiện là sai. |
4 | void assertNotNull(Object object) Kiểm tra xem một đối tượng không phải là rỗng. |
5 | void assertNull(Object object) Kiểm tra xem một đối tượng có rỗng không. |
6 | void assertSame(object1, object2) Phương thức khẳng định () kiểm tra nếu hai tham chiếu đối tượng trỏ đến cùng một đối tượng. |
7 | void assertNotSame(object1, object2) Phương thức OwnerNotSame () kiểm tra nếu hai tham chiếu đối tượng không trỏ đến cùng một đối tượng. |
số 8 | void assertArrayEquals(expectedArray, resultArray); Phương thức khẳng địnhArrayEquals () sẽ kiểm tra xem hai mảng có bằng nhau hay không. |
Hãy sử dụng một số phương pháp được đề cập ở trên trong một ví dụ. Tạo tệp lớp java có tênTestAssertions.java trong C: \> JUNIT_WORKSPACE.
import org.junit.Test;
import static org.junit.Assert.*;
public class TestAssertions {
@Test
public void testAssertions() {
//test data
String str1 = new String ("abc");
String str2 = new String ("abc");
String str3 = null;
String str4 = "abc";
String str5 = "abc";
int val1 = 5;
int val2 = 6;
String[] expectedArray = {"one", "two", "three"};
String[] resultArray = {"one", "two", "three"};
//Check that two objects are equal
assertEquals(str1, str2);
//Check that a condition is true
assertTrue (val1 < val2);
//Check that a condition is false
assertFalse(val1 > val2);
//Check that an object isn't null
assertNotNull(str1);
//Check that an object is null
assertNull(str3);
//Check if two object references point to the same object
assertSame(str4,str5);
//Check if two object references not point to the same object
assertNotSame(str1,str3);
//Check whether two arrays are equal to each other.
assertArrayEquals(expectedArray, resultArray);
}
}
Tiếp theo, tạo một tệp lớp java có tên TestRunner.java trong C: \> JUNIT_WORKSPACE để thực thi (các) trường hợp thử nghiệm.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner2 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestAssertions.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Biên dịch các lớp Test case và Test Runner bằng javac.
C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java
Bây giờ chạy Test Runner, sẽ chạy trường hợp thử nghiệm được xác định trong lớp Test Case được cung cấp.
C:\JUNIT_WORKSPACE>java TestRunner
Xác minh kết quả đầu ra.
true
Chú thích
Chú thích giống như thẻ meta mà bạn có thể thêm vào mã của mình và áp dụng chúng cho các phương thức hoặc trong lớp. Các chú thích này trong JUnit cung cấp thông tin sau về các phương pháp kiểm tra -
- phương thức nào sẽ chạy trước và sau phương pháp thử nghiệm.
- phương thức nào chạy trước và sau tất cả các phương thức, và.
- phương thức hoặc lớp nào sẽ bị bỏ qua trong quá trình thực thi.
Bảng sau cung cấp danh sách các chú thích và ý nghĩa của chúng trong JUnit:
Sr.No. | Chú thích & Mô tả |
---|---|
1 | @Test Chú thích Kiểm tra cho JUnit biết rằng phương thức public void mà nó được đính kèm có thể được chạy như một trường hợp kiểm tra. |
2 | @Before Một số thử nghiệm cần các đối tượng tương tự được tạo trước khi chúng có thể chạy. Chú thích phương thức trống công khai với @Before khiến phương thức đó được chạy trước mỗi phương thức Kiểm tra. |
3 | @After Nếu bạn phân bổ tài nguyên bên ngoài trong phương pháp Before, bạn cần giải phóng chúng sau khi chạy thử nghiệm. Chú thích phương thức trống công khai với @After khiến phương thức đó được chạy sau phương thức Kiểm tra. |
4 | @BeforeClass Việc chú thích một phương thức void tĩnh công khai với @BeforeClass khiến nó được chạy một lần trước bất kỳ phương thức kiểm tra nào trong lớp. |
5 | @AfterClass Điều này sẽ thực hiện phương pháp sau khi tất cả các thử nghiệm kết thúc. Điều này có thể được sử dụng để thực hiện các hoạt động dọn dẹp. |
6 | @Ignore Chú thích Bỏ qua được sử dụng để bỏ qua kiểm tra và kiểm tra đó sẽ không được thực hiện. |
Tạo tệp lớp java có tên JunitAnnotation.java trong C: \> JUNIT_WORKSPACE để kiểm tra chú thích.
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class JunitAnnotation {
//execute before class
@BeforeClass
public static void beforeClass() {
System.out.println("in before class");
}
//execute after class
@AfterClass
public static void afterClass() {
System.out.println("in after class");
}
//execute before test
@Before
public void before() {
System.out.println("in before");
}
//execute after test
@After
public void after() {
System.out.println("in after");
}
//test case
@Test
public void test() {
System.out.println("in test");
}
//test case ignore and will not execute
@Ignore
public void ignoreTest() {
System.out.println("in ignore test");
}
}
Tiếp theo, tạo một tệp lớp java có tên TestRunner.java trong C: \> JUNIT_WORKSPACE để thực thi chú thích.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(JunitAnnotation.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Biên dịch các lớp Test case và Test Runner bằng javac.
C:\JUNIT_WORKSPACE>javac JunitAnnotation.java TestRunner.java
Bây giờ chạy Test Runner, sẽ chạy trường hợp thử nghiệm được xác định trong lớp Test Case được cung cấp.
C:\JUNIT_WORKSPACE>java TestRunner
Xác minh kết quả đầu ra.
in before class
in before
in test
in after
in after class
true