我想在测试中注入DeMorgenArticleScraper。
@RunWith(SpringJUnit4ClassRunner.class)
public class DeMorgenArticleScraperTest {
@Autowired
private DeMorgenArticleScraper deMorgenArticleScraper;
...
}
DeMorgenArticleScraper组件本身进行了一些配置,但IDE/编译器并没有抱怨它们。
@Component
public class DeMorgenArticleScraper extends NewsPaperArticleScraper {
@Autowired
public DeMorgenArticleScraper(
@Qualifier("deMorgenSelectorContainer") SelectorContainer selector,
GenericArticleScraper genericArticleScraper,
@Qualifier("deMorgenCompany") Company company) {
super(selector, genericArticleScraper, company);
}
...
}
用@Qualifier注释的构造函数参数在Config.class中使用@Bean定义。类本身有@Configuration。我想问题不在这里。
IDE已经警告我,找不到bean。。。必须在bean中定义自动连线成员。但据我所知,它是在带有@组件注释的bean中定义的。当Spring Boot应用程序可以启动时(当我注释掉测试类时),所有其他bean连接似乎都正常。
我遇到了类似的问题,我的spring上下文没有得到初始化,因此我无法向bean注入Autowired注释。然后我看到了这篇文章,并按照@progonkpa的建议尝试了下面的注释,它开始工作了。
@SpringBootTest
@RunWith(SpringRunner.class)
但是后来我意识到@SpringBootTest
已经包含了@ExtenTo({SpringExtension.class})
注释,它是Junit5等效的@RunTo(SpringRunner.class)
,因此它应该在运行测试时加载Spring上下文。然后我发现了一个愚蠢的错误,我从Junit4导入了@Test
注释(即org.junit.Test;
)而不是Junit5(即org.junit.jupiter.api.Test;
)库。我从Junit5库更改了@Test
,它开始使用单个注释@SpringBootTest
。
p、 s:如果您使用的是junit5,请不要忘记从依赖项中排除junit4库
@SpringBootTest
是相当重量级的,并且出于所有意图和目的都将加载您的整个应用程序,https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-applications,它相当重量级并且极大地影响了测试时间。根据您尝试测试的内容,您可能需要研究
我替换了
@RunWith(SpringJUnit4ClassRunner.class)
具有
@SpringBootTest
@RunWith(SpringRunner.class)
这似乎工作正常:我看到Spring Boot启动并加载bean。我将暂时保留这个问题以获得更好的建议。
并添加注释 我得到一条消息:没有测试找到test runner JUnit5,并且在Problems选项卡中有SpringBootTest.jar无法读取或者不是有效的ZIP文件 也试过 我也试过: 如果我将字符串myUrl硬编码为“http://localhost:8090”,则测试工作正常,因此问题在于@value不工作
我想使用自定义的<code>TestExecutionListener</code>和<code>SpringJUnit4ClassRunner</code>结合使用,在我的测试数据库上运行Liquibase模式设置。我的<code>TestExecutionListener</code>工作正常,但当我在类上使用注释时,测试中DAO的注入不再工作,至少实例为空。 侦听器相当简单: 日志中没有错误
我正在springboot应用程序中编写Junits,它只有一个初始化器类 以及其他控制器和服务类。 服务类的Junit如下所示: 当我运行Junit时,它会抛出如下错误: 我还尝试了所有注释,如,@ContextConfiguration(classes=Initializer.class),,但它仍会抛出相同的错误。代码中没有其他类似于应用程序上下文的配置类。
我卡住了!如果跳过测试并部署到tomcat自动布线,则配置属性文件将正常工作。在我的测试中,它失败了!我不确定我错过了什么。 GitService-自带属性在Tomcat上工作! GitServiceTest由于NPE,该类在初始化时失败.属性为空。 粘贴后我确实意识到@EnableConfigurationProperties在application.java和GitService.java类上
问题内容: 我使用SpringBeanAutowiringSupport在某些对象中进行bean注入。问题是,在jUnit测试中无法注入bean。为了进行测试,使用了SpringJUnit4ClassRunner。 有谁知道,为什么使用注入在jUnit测试中不起作用? 问题答案: 感谢M. Denium的帮助,他的解决方案得以奏效。
我正在尝试使用Mockito在SprinBoot应用程序中进行一些jUnit测试。 现在我的服务有了一些变量,可以从通过注释: 我试图通过像这样使用来测试这个: 但是,该属性不会被填充,并保持为。 这方面有很多TPOIC,但我还没能拼凑出一个解决方案。我看到解决方案建议,但它似乎想做一个集成测试,使服务加速,但由于无法连接到数据库,服务失败了。所以这不是我想要的。 我还看到一些解决方案建议我制作一