gpt4 book ai didi

java - Spring 测试和maven

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:46 27 4
gpt4 key购买 nike

我正在尝试测试我的 Spring Web 应用程序,但我遇到了一些问题。

我在我的maven中添加了一个测试类

@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration
public class UserServiceTest {

@Autowired
private UserService userService;

@Test
public void testName() throws Exception {
List<UserEntity> userEntities = userService.getAllUsers();

Assert.assertNotNull(userEntities);
}
}

但是当我尝试运行这个测试时,我在 userService 上得到了一个 NullPointerException。IntelliJ 说“无法 Autowiring 。找不到 'UserService' 类型的 bean。添加 @RunWith(SpringJUnit4ClassRunner.class) 后,我得到了这个异常

java.lang.IllegalStateException: Neither GenericXmlContextLoader nor AnnotationConfigContextLoader was able to detect defaults, and no ApplicationContextInitializers were declared for context configuration

我该如何解决?我想我需要在我的 tomcat 服务器上运行这个测试,但是我如何部署以使用 IntelliJ 进行测试? (比如命令 'mvn clean install tomcat7:run-war-only')

最佳答案

您必须在测试开始前提供要初始化的 Spring 上下文文件的位置。

测试类

@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration(locations = { "classpath:META-INF/your-spring-context.xml" })
public class UserServiceTest extends AbstractJUnit4SpringContextTests {

@Autowired
private UserService userService;

@Test
public void testName() throws Exception {
List<UserEntity> userEntities = userService.getAllUsers();

Assert.assertNotNull(userEntities);
}
}

你的-spring-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<bean id="userService" class="java.package.UserServiceImpl"/>

</beans>

关于java - Spring 测试和maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26055876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com