Chuỗi Tôi có một Spring MVC @Controller
với constructor này:Tiêm một tài sản với @InjectMocks
@Autowired
public AbcController(XyzService xyzService, @Value("${my.property}") String myProperty) {/*...*/}
Tôi muốn viết một bài kiểm tra đơn vị độc lập cho điều khiển này:
@RunWith(MockitoJUnitRunner.class)
public class AbcControllerTest {
@Mock
private XyzService mockXyzService;
private String myProperty = "my property value";
@InjectMocks
private AbcController controllerUnderTest;
/* tests */
}
Có cách nào thế nào để có được @InjectMocks
để tiêm tài sản String của tôi? Tôi biết tôi không thể giả lập một String vì nó không thay đổi, nhưng tôi có thể chỉ cần tiêm một String bình thường ở đây không?
@InjectMocks
chèn một giá trị rỗng theo mặc định trong trường hợp này. @Mock
dễ hiểu ném một ngoại lệ nếu tôi đặt nó trên myProperty
. Có chú thích nào khác mà tôi đã bỏ lỡ, chỉ có nghĩa là "tiêm đối tượng chính xác này chứ không phải là một mô hình của nó"?
Tôi biết tôi có thể tự khởi tạo bộ điều khiển của tôi theo phương pháp thiết lập, nhưng tôi hy vọng sẽ tìm được giải pháp cho kiểu cấu hình chú thích. Cảm ơn! –