Tôi có một thiết lập thành phần về cơ bản là một trình khởi chạy cho một ứng dụng. Nó được cấu hình như vậy:
@Component
public class MyLauncher {
@Autowired
MyService myService;
//other methods
}
MyService được chú thích bằng @Service
chú thích Spring và được tự động đưa vào lớp trình khởi chạy của tôi mà không gặp bất kỳ vấn đề nào.
Tôi muốn viết một số trường hợp thử nghiệm jUnit cho MyLauncher, để làm như vậy tôi đã bắt đầu một lớp như thế này:
public class MyLauncherTest
private MyLauncher myLauncher = new MyLauncher();
@Test
public void someTest() {
}
}
Tôi có thể tạo một đối tượng Mock cho MyService và đưa nó vào myLauncher trong lớp thử nghiệm của mình không? Tôi hiện không có getter hoặc setter trong myLauncher vì Spring đang xử lý autowiring. Nếu có thể, tôi không muốn phải thêm getters và setters. Tôi có thể cho trường hợp thử nghiệm biết để đưa một đối tượng giả vào biến tự động mong muốn bằng @Before
phương thức init không?
Nếu tôi nói về điều này hoàn toàn sai, hãy nói điều đó. Tôi vẫn còn mới với điều này. Mục tiêu chính của tôi là chỉ có một số mã Java hoặc chú thích đặt một đối tượng mô phỏng vào @Autowired
biến đó mà tôi không cần phải viết phương thức setter hoặc phải sử dụng applicationContext-test.xml
tệp. Tôi muốn duy trì mọi thứ cho các trường hợp thử nghiệm trong .java
tệp thay vì phải duy trì một nội dung ứng dụng riêng biệt chỉ cho các thử nghiệm của tôi.
Tôi hy vọng sẽ sử dụng Mockito cho các đối tượng giả. Trong quá khứ, tôi đã làm điều này bằng cách sử dụng org.mockito.Mockito
và tạo các đối tượng của tôi với Mockito.mock(MyClass.class)
.