我有一個Spring啓動項目,它有一套單元測試,它使用mockito的@InjectMocks來實例化正在測試的類並注入可能存在的任何模擬。@Autowire結合@InjectMocks
換句話說,如果我有這樣的
@InjectMocks MyClass的MyClass的;
然後我不需要
MyClass的MyClass的=新MyClass的();
或 @Autowired MyClass myClass;
到目前爲止,這個設置工作正常。
但是最近有必要在運行測試時訪問項目的spring引導屬性。這意味着必須在測試中使用SpringBoot任務運行程序,以便任何@Autowire實例(包括實例化Environment類的實例)都可以工作。
我發現如果使用@InjectMocks來實例化一個類,那麼類中的@Autowired的任何實例都不起作用(它們應該創建的對象爲null)。這意味着沒有Environment類並且不能訪問Spring屬性。
相反,我必須@Autowired添加到@InjectMocks註釋
所以這
@InjectMocks MyClass的MyClass的;
成爲該
@Autowired
@InjectMocks MyClass的MyClass的;
我的問題很簡單。 這樣做有什麼問題嗎? 它是否實例化myClass或做任何可能導致故障的任何事情