Groovy - Kiểm tra đơn vị
Đơn vị cơ bản của hệ thống hướng đối tượng là lớp. Do đó, kiểm thử đơn vị bao gồm thử nghiệm trong một lớp. Cách tiếp cận được thực hiện là tạo một đối tượng của lớp đang thử nghiệm và sử dụng nó để kiểm tra xem các phương thức đã chọn có thực thi như mong đợi hay không. Không phải mọi phương pháp đều có thể được kiểm tra, vì không phải lúc nào việc kiểm tra từng thứ và mọi thứ đều thực tế. Nhưng kiểm tra đơn vị nên được tiến hành cho các phương pháp quan trọng và quan trọng.
JUnit là một khung kiểm thử mã nguồn mở, là tiêu chuẩn công nghiệp được chấp nhận để kiểm tra đơn vị tự động mã Java. May mắn thay, khung công tác JUnit có thể dễ dàng được sử dụng để thử nghiệm các lớp Groovy. Tất cả những gì được yêu cầu là mở rộng lớp GroovyTestCase là một phần của môi trường Groovy tiêu chuẩn. Lớp trường hợp thử nghiệm Groovy dựa trên trường hợp thử nghiệm Junit.
Viết một trường hợp thử nghiệm Junit đơn giản
Giả sử chúng ta có lớp sau được định nghĩa trong tệp lớp ứng dụng:
class Example {
static void main(String[] args) {
Student mst = new Student();
mst.name = "Joe";
mst.ID = 1;
println(mst.Display())
}
}
public class Student {
String name;
int ID;
String Display() {
return name +ID;
}
}
Kết quả của chương trình trên được đưa ra dưới đây.
Joe1
Và bây giờ, giả sử chúng ta muốn viết một trường hợp thử nghiệm cho lớp Sinh viên. Một trường hợp thử nghiệm điển hình sẽ giống như bên dưới. Những điểm sau đây cần được lưu ý về mã sau:
- Lớp test case mở rộng lớp GroovyTestCase
- Chúng tôi đang sử dụng câu lệnh khẳng định để đảm bảo rằng phương thức Hiển thị trả về đúng chuỗi.
class StudentTest extends GroovyTestCase {
void testDisplay() {
def stud = new Student(name : 'Joe', ID : '1')
def expected = 'Joe1'
assertToString(stud.Display(), expected)
}
}
Bộ thử nghiệm Groovy
Thông thường, khi số lượng bài kiểm tra đơn vị tăng lên, sẽ trở nên khó khăn để tiếp tục thực hiện tất cả các trường hợp kiểm thử một. Do đó Groovy cung cấp một cơ sở để tạo một bộ thử nghiệm có thể đóng gói tất cả các trường hợp thử nghiệm thành một đơn vị logic. Đoạn mã sau đây cho thấy cách đạt được điều này. Những điều sau đây cần được lưu ý về mã:
GroovyTestSuite được sử dụng để đóng gói tất cả các trường hợp thử nghiệm thành một.
Trong ví dụ sau, chúng tôi giả định rằng chúng tôi có hai tệp trường hợp kiểm tra, một tệp được gọi là StudentTest và cái kia là EmployeeTest trong đó có tất cả các thử nghiệm cần thiết.
import groovy.util.GroovyTestSuite
import junit.framework.Test
import junit.textui.TestRunner
class AllTests {
static Test suite() {
def allTests = new GroovyTestSuite()
allTests.addTestSuite(StudentTest.class)
allTests.addTestSuite(EmployeeTest.class)
return allTests
}
}
TestRunner.run(AllTests.suite())