gpt4 book ai didi

spring - 为什么@RunWith(SpringJUnit4ClassRunner.class) 不起作用?

转载 作者:行者123 更新时间:2023-12-04 16:44:22 25 4
gpt4 key购买 nike

我正在尝试使用 Spring 框架使用 JUnit 测试 CRUD 方法。下面的代码完美运行

 @Transactional
public class TestJdbcDaoImpl {
@SuppressWarnings("deprecation")
@BeforeClass
@Test
public static void setUpBeforeClass() throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
JdbcDaoImpl dao = ctx.getBean("jdbcDaoImpl",JdbcDaoImpl.class);
Circle cicle = new Circle();
dao.insertCircle(new Circle(6,"e"));
}}

但是,以下带有 @RunWith(SpringJUnit4ClassRunner.class) 的代码给了我一个错误

** 2014 年 6 月 11 日下午 1:00:15 org.springframework.test.context.TestContextManager retrieveTestExecutionListeners 信息:无法实例化 TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener]。指定自定义监听器类或使默认监听器类(及其所需的依赖项)可用。违规类:[javax/servlet/ServletContext]
**
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/spring.xml")
@Transactional
public class TestJdbcDaoImpl {

@Autowired
private static JdbcDaoImpl dao;

@SuppressWarnings("deprecation")
@BeforeClass
public static void setUpBeforeClass() throws Exception {
Circle cicle = new Circle();
dao.insertCircle(new Circle(10,"e"));
}

最佳答案

你的测试至少有两个问题

  • 1) 不能在测试中使用标准的 ServletContext。要么使用仅使用不使用 ServletContext 的 Bean 的 Spring 配置的一部分,要么使用 Spring-MVC-Test 支持(自 Spring 3.2 起可用)
  • 2) @BeforeClass在加载 spring 上下文之前运行。因此使用 @Before反而。

  • 尝试解决这两个问题的示例:
    @RunWith(SpringJUnit4ClassRunner.class)
    @WebAppConfiguration // <-- enable WebApp Test Support
    @ContextConfiguration("/spring.xml")
    @Transactional
    public class TestJdbcDaoImpl {

    @Autowired
    private static JdbcDaoImpl dao;

    @SuppressWarnings("deprecation")
    @Before // <-- Before instead of BeforeClass
    public static void setUpBeforeClass() throws Exception {
    Circle cicle = new Circle();
    dao.insertCircle(new Circle(10,"e"));
    }

    关于spring - 为什么@RunWith(SpringJUnit4ClassRunner.class) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156450/

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