2011-08-24 10 views
7

Sử dụng Eclipse (Helios), tôi có thể tạo tệp kiểm tra JUnit ClassATest.java của tệp nguồn ClassA.java bằng cách sử dụng New -> JUnit Test Case -> Class under test ..., sau đó chọn tất cả các phương thức của ClassA được kiểm tra.Eclipse: cách cập nhật tệp kiểm tra JUnit với phương thức mới được thêm vào trong tệp nguồn?

Nếu sau này chúng tôi thêm một số phương pháp vào ClassA, làm thế nào để chúng tôi dễ dàng phản ánh việc bổ sung này trong ClassATest? (Không sao chép/dán plz).

Trả lời

2

Một giải pháp là sử dụng MoreUnit

Với MoreUnit cài đặt để Eclipse, người ta có thể nhấn chuột phải vào phương pháp mới được thêm (và chưa được kiểm tra đơn vị) và chọn "Tạo thử nghiệm"

Tất nhiên, nếu một người luôn theo kiểu viết-thử-trước-viết-phương pháp, thì giải pháp này là không cần thiết. Tuy nhiên trong thực tế đôi khi bạn không có ý tưởng rõ ràng về những gì bạn muốn làm, trong trường hợp đó bạn sẽ phải mã hóa một số phương pháp, chơi với nó, sau đó suy nghĩ lại và mã lại cho đến khi bạn hài lòng với mã và muốn để làm cho nó ổn định bằng cách thêm kiểm tra đơn vị.

+0

Làm thế nào MoreUnit có thể thêm một phương pháp thử mới cho một phương thức mới được tạo trong lớp của tôi vào lớp kiểm tra junit hiện có? Kiểm thử tạo ra đó sẽ tạo ra một lớp thử nghiệm mới nhưng không phải là một phương thức thử nghiệm mới ở trên cùng của lớp thử nghiệm hiện có. Tôi đang thiếu cái gì đó? Tôi đang sử dụng Eclipse Luna – 5YrsLaterDBA

+0

@ 5YrsLaterDBA: Trên Kepler nó tạo ra một phương pháp thử nghiệm mới trong một lớp thử nghiệm hiện có. Tôi thấy nó với TestNG. Có lẽ tác giả của MoreUnit đã không cung cấp bản phát hành cho Luna chưa? – CuongHuyTo

0

Bạn nên xem xét việc tạo bộ kiểm tra JUnit sẽ thực thi tất cả các thử nghiệm trong các lớp bạn chỉ định. Do đó, việc thêm các trường hợp thử nghiệm mới cũng đơn giản như việc tạo một lớp mới và thêm nó vào danh sách @ Suite.SuiteClasses (như được thấy bên dưới).

Đây là một ví dụ.

Ví dụ JUnit Test Suite Class:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    TestClassFoo.class 
}) 
public class ExampleTestSuite {} 

Ví dụ Test Case lớp:

public class TestClassFoo { 
    @Test 
    public void testFirstTestCase() { 
     // code up test case 
    } 
} 
+1

Xin chào Uperez, câu hỏi của tôi là tự động cập nhật TestClassFoo nếu có các phương thức MỚI trong ClassFoo. – CuongHuyTo