3 回答
TA贡献2037条经验 获得超6个赞
尽管测试开始了,但我遇到了与自动装配不起作用的相同问题,问题是我仍在使用旧的 junit4 @Test 注释。确保您的测试方法使用 juni5 包 org.junit.jupiter.api.Test 中的 @Test 进行注释。
TA贡献1834条经验 获得超8个赞
我想是因为你已经这样注释了:
@SpringBootTest (classes=MyConfig.class)
Spring 只会寻找MyConfig.class
合适的 bean 而无法为 找到一个MyService
,但是,我认为当应用程序正常运行时,Spring 会扫描所有包以查找 bean。这就是它在非测试中工作正常的原因。
TA贡献1805条经验 获得超9个赞
也许你可以添加 @ContextConfiguration(classes = ApplicationConfiguration.class)
它看起来像这样
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import example06.junit.group01.Piano;
@SpringBootTest
@ContextConfiguration(classes = ApplicationConfiguration.class)
public class ApplicationConfigurationTest {
@Autowired
private Piano piano;
@Test
public void shouldTestPiano() {
System.err.println("Testing JUnit5 > " + piano);
}
}
我的配置是一个简单的类
@Configuration
@ComponentScan
public class ApplicationConfiguration {
}
添加回答
举报