2010-03-16 31 views
30

Tôi đã cố gắng tìm ra cách chạy thử nghiệm tham số trong Junit4 cùng với PowerMock. Vấn đề là rằng để sử dụng PowerMock bạn cần để trang trí lớp học thử nghiệm của bạn vớiJunit Các bài kiểm tra tham số cùng với Powermock - làm cách nào?

@RunWith(PowerMockRunner.class) 

và sử dụng các bài kiểm tra tham số bạn có để trang trí với

@RunWith(Parameterized.class) 

Từ những gì tôi có thể thấy họ dường như loại trừ lẫn nhau !? Điều này có đúng không? Có cách nào để khắc phục điều này? Tôi đã cố gắng tạo một lớp tham số trong một lớp đang chạy với PowerMock; một cái gì đó như thế này:

@RunWith(PowerMockRunner.class) 
class MyTestClass { 
    @RunWith(Parameterized.class) 
    class ParamTestClass { 
      // Yadayada 
    } 
} 

Nhưng tiếc là điều này không làm được gì nhiều tốt ... Các ParamTestClass vẫn không chạy với sự hỗ trợ PowerMock (không phải là đáng ngạc nhiên có thể) ... Và tôi đã loại hết các ý tưởng để mọi trợ giúp được đánh giá cao!

Cập nhật: Đối với nhân viên của Google trong tương lai cũng thấy: Using PowerMock without the RunWith?

Trả lời

0

Bạn không thể sử dụng hai vận động viên đẳng cấp cùng một lúc, vì vậy bạn chắc chắn sẽ phải viết runner thử nghiệm của riêng bạn để làm cho điều đó xảy ra.

Tôi không biết gì về Powermock, nhưng sau 10 giây nghiên cứu, có vẻ như một giải pháp là viết một nhân vật thử nghiệm sử dụng trình nạp lớp của powermock và chạy thử nghiệm tham số. Nếu bạn có thể tìm ra cách ủy nhiệm cho nhân viên thử nghiệm được tham số hóa từ bên trong thử nghiệm tùy chỉnh của bạn, đó có thể là đặt cược tốt nhất của bạn.

+0

Cảm ơn đề xuất của bạn. Tôi sẽ xem xét trình nạp lớp của powermock. –

14

Có tính năng này hoạt động bằng cách sử dụng PowerMock Rule khả dụng nếu bạn sử dụng JUnit 4.7+.

16

Tôi gặp vấn đề tương tự. Thật không may nó sẽ không cho phép tôi sử dụng một Rule PowerMock do JVM tôi đã có. Thay vì quy tắc tôi đã sử dụng RunnerDelegate.

@RunWith(PowerMockRunner.class) 
@PowerMockRunnerDelegate(Parameterized.class) 
+0

Đã có cùng một vấn đề JVM, giải pháp này hoạt động như một sự quyến rũ. Chúc mừng! –

Các vấn đề liên quan