Đối với các lập trình viên Java, liên tưởng đầu tiên khi đề cập tới cụm từ “Testing Framework” đều là “JUnit”. Tuy nhiên, nhắc tới “Testing Framework” không chỉ có Junit mà hiện còn có “TestNG”. Vậy “TestNG” là gì? “TestNG” là một Testing Framework đang được đánh giá rất cao và đang dần củng cố và khẳng định vị thế là một testing framework hữu ích và dễ dàng sử dụng. Điển hình như JBoss Seam hiện đang cung cấp Testing Framework tích hợp dựa trên nền tảng TestNG.
Đang xem: Tìm hiểu về testng là gì, những Điều cần biết về testng những Điều cần biết về testng
Trong khuôn khổ bài viết này, chúng tôi sẽ đưa ra cho các bạn một cái nhìn tổng quát nhất về TestNG (từ những khái niệm cơ bản về TestNG cho tới hướng dẫn chi tiết cách sử dụng TestNG) để các bạn có thể nắm được những nguyên tắc, nguyên lí cơ bản khi sử dụng TestNG trong một dự án phát triển phần mềm.
JUnit thì đã quá quen thuộc với các bạn lập trình viên Java rồi. Vậy, JUnit và TestNG giống và khác nhau như thế nào? Tại sao TestNG lại được đánh giá cao như vậy? Phân tích sau đây sẽ giúp các bạn hiểu và biết được một số thế mạnh của TestNG so với JUnit.
JUnit hiện có 2 phiên bản phổ biến là Junit3 (phiên bản đầu tiên) và Junit4 (phiên bản dựa trên nền tảng các chỉ dẫn Anomation dành cho Java SE 5.0). Do TestNG được release trước cả JUnit 4 nên để có thể hiểu được tổng quan về TestNG thì trước hết cần phải biết được những điểm hạn chế tiềm tàng của JUnit3.
Ở JUnit3, tên Test Method đều bắt đầu bằng chữ “test”. Do đó, nếu không thực hiện Test Method nào đó thì bắt buộc phải chuyển Method name đó từ “testAdd” thành “_testAdd”. Giả dụ nếu như trong TestClass nào đó có tới 20 TestMethod nhưng chỉ thực hiện 10 TestMethod thì phải chuyển Method name của 10 TestMethod còn lại sang “_testAdd”. Điều đó rất dễ gây khó chịu và phiền hà cho người sử dụng
JUnit3 không cho truyền Argument vào TestMethod. Việc sử dụng Argument trong Java là điều cơ bản và đương nhiên phải thế. Do đó, nếu có thể truyền giá trị Argument vào TestMethod thì có thể nâng cao chất lượng xử lý check validation thông qua việc thay đổi giá trị Argument.
Nếu muốn test xem liệu method có throw đúng Exception cần throw hay không thì cần phải add thêm đoạn code sau:
TestMethod này sẽ thực hiện kiểm chứng xem có phát sinh RuntimeException khi call method throwException() method hay không. Nếu phát sinh Exception thì tức là Test thành công.
Trong đoạn code này, chúng ta thấy có gán thêm “expected” vào tên biến Exeption, nếu không phát sinh Exception thì sẽ call method fail() và kiểm thử là thất bại.
Xem thêm: Tivi 4K Là Gì ? Ưu Và Nhược Điểm Của Tv 4K Tất Cả Những Gì Bạn Cần Biết Về Tv 4K Và Ultra Hd
JUnit 3 sử dụng 2 phương thức là setUp() và tearDown() giúp chúng ta tránh được việc trùng mã khi nhiều test cùng chia sẻ nhau ở phần khởi tạo và dọn dẹp các biến. Tuy nhiên, 2 phương thức này lại được gọi ở trước và sau các phương thức test. Trong lúc xử lý khởi tạo thì chỉ gọi 1 lần theo đơn vị TestClass chứ không phải theo TestMethod.
Đây không phải là vấn đề gì quá to tát nhưng nó là một concept quan trọng của JUnit. Ở cả 2 phiên bản JUnit3 và JUnit4 đều sẽ tạo ra instance cho từng TestMethod. Điều đó có nghĩa là nếu một TestClass nào đó mà có 5 TestMethod thì nó sẽ tạo ra 5 instances cho 5 TestMethod đó.
Tại sao lại có cơ chế như vậy? Điều này là bắt nguồn từ suy nghĩ là “Cần phải tiến hành test độc lập”. Bằng cách tạo ra các testcase cho từng TestMethod bạn luôn có thể chạy kiểm thử được trong cùng một tình trạng tương tự nhau. Và tùy vào trạng thái của các instance để không ảnh hưởng tới việc thành công hay thất bại của các lần kiểm thử. Tuy nhiên, dù có sử dụng ngôn ngữ chỉ hướng đối tượng hay không thì cũng có lúc rất bất tiện nếu đối tượng không có trạng thái.
TestNG là một testing framework được xây dựng dựa trên cảm hứng từ JUnit và NUnit. TestNG không chỉ giải quyết được 5 hạn chế nêu trêu của Junit3 mà còn cung cấp các chỉ dẫn Annotation từ Java SE 5.0 để mô tả về cách kiểm thử.
Trong từ TestNG có từ “NG” có nghĩa là Next Generation, do vậy, nó không phải là biến thể của JUnit và Nunit Người tạo dựng lên công cụ TestNG này là Cedric Beust, một kĩ sư lập trình của Google.
Xem thêm: Vđ Là Gì ? Ý Nghĩa Của Từ Vđ Giật Mình Với Lắm Kiểu Viết Tắt Của Giới Trẻ
Mô tả các thiết lập khác nhau khi kiểm thử bằng file XMLCung cấp các chỉ dẫn Annotation-based để nhận diện phương thức testXác lập cụ thể thời điểm cho các xử lý trước và sauPhân nhóm kiểm thửTạo mối quan hệ ràng buộc lẫn nhau giữa các module
Các yêu cầu hệ thống và cài đặt môi trường cho TestNG, các bạn có thể tham khảo tại đây:http://testng.org/doc/. Sau khi download về, các bạn chỉ cần giải nén archive và add thêm file “testng-X.X-jdk15.jar” vào ClassPath là xong.
automation testingbài toán về phân tích giá trị biênbai-tap-viet-tc-giao-dienblackbox-testingbugzillachecklistcong-cu-test-hieu-nangGUIhackerjirajmeterkiem thu phan memkiem-thu-phan-mem-cho-nguoi-moikỹ thuật khai thac lỗ hổng xssmanual testingmau-viet-test-casequan-ly-bug-trong-mot-du-an-nhu-the-naosai-lam-hoc-testerSql injectiontao-kich-ban-dang-nhap-bang-selenium-ideusability testing
Lưu trữFebruary (1)January (1)June (4)April (3)March (25)January (1)December (1)November (12)October (1)September (4)August (7)