ON THE ECLIPSE ANT DEPLOYMENT AND JUNIT TESTCASE

Một phần của tài liệu Báo Cáo Nhóm Công Cụ Và Môi Trường Phát Triển Phần Mềm.pdf (Trang 44 - 49)

1. Junit TestCase

- JUnit là m t khuôn khộ ổ để phát tri n các bài kiể ểm tra đơn vị cho các l p Java. ớ JUnit cung c p m t lấ ộ ớp cơ sở được g i là TestCase có thọ ể được m rở ộng để ạ t o một lo t các bài ki m tra cho lạ ể ớp bạn đang tạo, một thư viện xác nhận đượ ửc s dụng để đánh giá kết quả của các bài kiểm tra riêng lẻ và một số ứng dụng ch y ạ các bài kiểm tra b n t o. ạ ạ

- Nếu b n mu n t i xuạ ố ả ống và cài đặt JUnit trên máy tính c a riêng mình, có th t i ủ ể ả xuống tại đây:http://www.junit.org/index.htm

43

- Tài li u bệ ổ sung cũng có sẵ ừn t cùng m t ngu n. Tôi khuyên bộ ồ ạn nên đọc Câu hỏi thường gặp sau khi bạn đã đọc phần giới thiệu này, sau đó chuyển sang các tài liệu khác được tìm th y ấ ở đó để ế bi t mô t v các cách s d ng phả ề ử ụ ức tạp hơn của JUnit. JUnit ph i nả ằm trong đường d n l p mẫ ớ ặc định trên t t c các máy tính ấ ả phòng thí nghi m CS, c h th ng Windows và Unix, vì v y b n không c n ph i ệ ả ệ ố ậ ạ ầ ả làm b t cấ ứ điều gì đặc biệt để ử ụ s d ng JUnit khi phát triển các chương trình của mình ở đó.

2. Creating a test class

- Giả s bử ạn đang làm việc trên m t l p có tên Math Util, ch y u là do Java không ộ ớ ủ ế cung cấp hàm để tính toán logarit cơ số 2. Để ử ụng JUnit để s d ki m tra các ể phương thức của bạn, bạn sẽ cần tạo một lớp riêng biệt, chúng ta sẽ gọi là MathUtilTest. Có ba điều b n ph i làm khi thi t l p lạ ả ế ậ ớp này để ch y các bài ki m ạ ể tra c a mình: ủ

1. Nh p junit.framework. *. ậ

2. M r ng TestCase. ở ộ

3. Cung c p mấ ột phương thức kh i t o v i m t tham s Chu i duy nh t. Hàm t o ở ạ ớ ộ ố ỗ ấ ạ này s g i hàm t o TestCase v i tham s . ẽ ọ ạ ớ ố

Đây là một l p tớ ối thiểu thể ệ hi n c u trúc c a các l p bấ ủ ớ ắt ngu n từ ồ

TestCase:

import junit.framework.*;

public class MathUtilTest extends TestCase

{

public MathUtilTest(String name)

{

super(name);

}

public void testLog2()

{

// This version of the assertEquals method allows you to

// specify a tolerance for equality of floating point

// values.

TestRollResult(0.0001s); TestDiceParser(0.0001s); TestDiceRoll(0.000s); TestDiceSum(0.000s)

44 }

}

Lưu ý rằng nếu b n không cung c p hàm t o c a bi u mạ ấ ạ ủ ể ẫu được chỉ ra ở đây, bạn s ẽ nhận được thông báo lỗi từ javac phàn nàn rằng TestCase () không được công khai trong junit.framework.TestCase. Các tác gi cả ủa JUnit đã làm điều này v i b n nh m ớ ạ ằ mục đích buộc bạn phải viết một phương thức khởi tạo cho lớp dẫn xuất TestCase của bạn.

3. Chy th nghi m JUnit ử ệ

Một điều thú vị về JUnit là bạn chỉ phải viết các bài kiểm tra, bạn không cần phải viết trình điều khiển kiểm tra. Hai trình điều khiển thử nghiệm được cung cấp cùng với JUnit, m t d a trên ký t ộ ự ự để ch y t dòng l nh và mạ ừ ệ ột d a trên GUI. Chúng tôi ự

sẽ t p trung vào trình ch y th nghi m GUI; xem tài liậ ạ ử ệ ệu JUnit để ế bi t chi ti t v ế ề trình điều khiển dựa trên ký t . ự

Trình điều khiển thử nghiệm GUI được gọi là junit.swingui.TestRunner. Nó cho phép b n ch ạ ỉ định l p thử nghiớ ệm để chạy và sau đó khi nhấp vào nút "Chạy", nó sẽ kiểm tra lớp bạn đã chọn và tìm t t cấ ả các phương thức có tên bắt đầu b ng "th ằ ử nghiệm". (Để có được một

Ý tưởng về cách JUnit thực hiện việc này, hãy xem tài liệu cho java.lang.Class và tìm hi u v "ph n chi u".) Nó ch y tể ề ả ế ạ ừng phương thức này, cập nh t thanh ti n trình ậ ế dựa trên số l n kiầ ểm tra đã thực thi thành công.

Nếu m t trong các th nghi m c a b n không thành công, b n s th y mô t v v ộ ử ệ ủ ạ ạ ẽ ấ ả ề ị trí x y ra l i, bao g m s dòng cho các l nh gả ỗ ồ ố ệ ọi phương thức đang hoạt động t i th i ạ ờ điểm xảy ra lỗi và bất k trưỳ ờng hợp ngoại lệ nào được đưa ra.

4. Chy th nghi m trên Windows ử ệ

Nhiều IDE s hoẽ ạt động với JUnit. Ví d , NetBeans, m t Java IDE mã ngu n mụ ộ ồ ở,

có h tr tích h p cho JUnit. Nó s t o ra m t l p TestCase khung t ỗ ợ ợ ẽ ạ ộ ớ ừ định nghĩa lớp của bạn và báo cáo lỗi được gắn liền v i trình so n thớ ạ ảo chương trình đi kèm. Nếu bạn đang chạ ừ ấy t d u nhắc lệnh, hãy nh p l nh trông giậ ệ ống như sau:

java junit.swingui.TestRunner MathUtilTest

Nơi tên lớp kiểm tra của bạn được thay thế cho MathUtilTest.

assertTrue(boolean)

45 Bạn có th cung c p b t k bi u thể ấ ấ ỳ ể ức boolean nào cho phương thức này và mi n là ễ biểu thức boolean được đánh giá là true, phương thức s báo cáo thành công. N u ẽ ế điều kiện bạn muốn kiểm tra là sai, chỉ cần thêm dấu "!" toán tử phủ nh cho biểu đị thức trong ngoặc đơn của bạn.

assertTrue(String, boolean)

Giống như dạng đầu tiên của khẳng định, ngo i tr Chuạ ừ ỗi được cung c p s ấ ẽ được in nếu xác nh n không thành công. H u hậ ầ ết các phương thức có m t phiên b n c a bi u ộ ả ủ ể mẫu này với m t chu i thông báo. ộ ỗ

assertEquals(Object, Object)

So sánh hai đối tượng bạn truyền vào bằng phương thức equals( ) method. assertNull(Object)

Thành công n u tham chiế ếu Đối tượng được truyền vào là null. Ngoài ra còn có m t ộ phương thức NotNull method.

fail(String)

Làm cho quá trình kiểm tra không thành công, in ra Chuỗi được cung c p ấ

5. Demo Jdice_team4

46

Một phần của tài liệu Báo Cáo Nhóm Công Cụ Và Môi Trường Phát Triển Phần Mềm.pdf (Trang 44 - 49)

Tải bản đầy đủ (PDF)

(49 trang)