我对SpringBeans的正确配置有问题。我的整个应用程序在Spring上运行正常,我想添加jUnit测试。不幸的是,豆子注射不当。我在同一个模块中有两个目录。我的整个应用程序都在里面:
/src/main/java/main/
这是正确的,我添加了restest。java和Beantest配置。java内部:
/src/test/java/main/
@SpringBootTest
@RunWith(Spring.Runner.class)
@ContextConfiguration(classes=BeanTestConfiguration.class)
class RestTest {
@Autowired
public String testString;
@Test
public void send() {
System.out.println(testString);
Assert.assertNotNull(testString);
}
}
和配置BeanTestConfiguration
@Configuration
public class BeanTestConfiguration {
@Bean
public String testString() { return new String("Hello"); }
}
不幸的是,当我在发送方法上运行测试时,系统输出打印为空,并且断言抛出失败。我在IntelliJ中的项目结构中添加了Spring应用程序上下文
由于您的测试类和方法是包私有的,所以我假设您使用的是jUnit 5。在JUnit5中,应该使用@ExtendWith
注释,而不是@RunWith
。尤其是SpringExtension
通过使用@ExtendWith(SpringExtension.class)注释测试类,开发人员可以实现基于JUnit Jupiter的标准单元和集成测试,同时获得TestContext框架的好处,例如支持加载应用程序上下文、测试实例的依赖注入、事务性测试方法执行、,等等
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-junit jupiter分机
例如。
@SpringBootTest
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes=BeanTestConfiguration.class)
class RestTest {
@Autowired
public String testString;
@Test
void send() {
System.out.println(testString);
Assert.assertNotNull(testString);
}
}
谢谢大家的帮助。我发现我对进口有问题。我的@Test注释来自jUnit 5,而我在注释中有来自jUnit 4的SpringRunner,结果Spring工作不正确,bean没有被注入。
我想再一次感谢大家。
问题内容: 我使用SpringBeanAutowiringSupport在某些对象中进行bean注入。问题是,在jUnit测试中无法注入bean。为了进行测试,使用了SpringJUnit4ClassRunner。 有谁知道,为什么使用注入在jUnit测试中不起作用? 问题答案: 感谢M. Denium的帮助,他的解决方案得以奏效。
问题内容: 我想对用Apache CXF编写的RESTful接口进行单元测试。 我使用ServletContext来加载一些资源,所以我有: 如果我将其部署在Glassfish上,则会注入ServletContext,并且它会按预期工作。但是我不知道如何将ServletContext注入我的服务类中,以便可以使用JUnit测试对其进行测试。 我使用Spring 3.0,JUnit 4,CXF 2.
我正在尝试为一个类编写测试,该类具有从属性文件注入的字段值。我试图在运行TestNG测试时利用注释获取其中的值,但它似乎忽略了我的属性文件。 有几十个类似的问题,我试着仔细阅读,并尽可能尝试它们的实现。但我的问题似乎略有不同,原因如下: > @TestProperty tSource和@Property tySource不适用于JUnit:谈论JUnit而不是TestNG(可能相关,也可能不相关?
Summary NoSQL databases provide looser consistency restrictions than traditional SQL databases. By requiring fewer relational constraints and consistency checks, NoSQL databases often offer performanc
Summary In this section, some SQL Injection techniques for PostgreSQL will be discussed. These techniques have the following characteristics: PHP Connector allows multiple statements to be executed by
Summary SQL Injection vulnerabilities occur whenever input is used in the construction of a SQL query without being adequately constrained or sanitized. The use of dynamic SQL (the construction of SQL