1
以下是我的測試類的類代碼。Spring Boot Test不會檢測測試類中的靜態嵌套@Named組件
@SpringBootTest(classes = { SpringBootApp.class }, webEnvironment = WebEnvironment.RANDOM_PORT)
public class OuterBeanTest {
@Inject
InnerBeanTest innerBean;
@Test
public void test() {
assertThat(this.innerBean.print()).isEqualTo("print");
}
@Named
static class InnerBeanTest {
String print(){
return "print";
}
};
}
但是靜態類的注入測試實例會引發約Unsatisfied dependency expressed through field 'innerBean'; expected at least 1 bean which qualifies as autowire candidate.
我怎樣才能把它注射到測試實例中的錯誤?
編輯
OuterBeanTest.java
是com.general
包src/test/java
,而春天啓動的應用是在com
包src/main/java
SpringBootApp.java
package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class, args);
}
}
注:相同的工作Spring-4.2.8
但現在我已經升級到Spring-4.3.7
和它停止工作。
'內靜' 是一種自相矛盾的說法。參見JLS#8.1.3。這是一個靜態類。 – EJP
@EJP正在明確,我知道它的區別。 –
我們錯過了一些相關的信息:'OuterBeanTest'駐留在哪個包中? 'SpringBootApp'包含什麼包? 'SpringBootApp'上有什麼註釋? –