0

我正在使用带有 EXT JS 的 Spring 和 hibernate 在使用 tomcat 的网页上填充 EXT JS 表单...我使用访问数据库并返回我的 HQL 语句的方法填充表

现在我正在尝试执行一个简单的 JUnit 测试来计算返回的记录数,但是当我调用填充 EXT JS 表单的 JUint 测试中的方法时,它返回这个异常......我不知道为什么

JUnit 测试类

package com.fexco.helloworld.web;

import static org.junit.Assert.assertEquals;

import java.util.List;

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.fexco.helloworld.web.dao.CustomerDaoImpl;
import com.fexco.helloworld.web.model.Customer;

/**
* Unit test for simple App.
*   /
public class CustomerServiceTest {

@Autowired
private CustomerDaoImpl customerDaoImpl;

@Test
public void findAllCustomersTest() {        
    List<Customer> list = customerDaoImpl.findAllCustomers();
    int numberInDatabase = list.size();
    assertEquals(5, numberInDatabase);
}

}

我访问数据库的方法

public List<Customer> findAllCustomers(){
    List<Customer> list = getHibernateTemplate().find("from Customer");
    return list;
}

和我的方法调用访问数据库的方法

public List<Customer> returnAllCustomers(){
    List<Customer> list = customerDaoImpl.findAllCustomers();
    return list;
}

您可以在此处看到该表单使用与 junit(findAllCustomers()) 中相同的方法填充了数据库中的项目

在此处输入图像描述

有人有什么想法吗?

4

2 回答 2

5

在 CustomerServiceTest 类之前添加以下行

@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration(locations = { "file:src/main/resources/app-context.xml" })
 public class CustomerServiceTest {....

其中 src/main/resources/app-context.xml - 是应用程序上下文的路径。很好,为测试创建单独的上下文。

编辑

您还需要spring-test.jar在类路径中。对maven的依赖:

       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring-version}</version>
        </dependency>
于 2012-04-17T15:41:46.440 回答
0

您没有在单元测试中加载 Spring 上下文。

您可以在这里查看 Spring 文档:http: //static.springsource.org/spring/docs/3.0.5.RELEASE/reference/testing.html

还有一个例子:Spring:JUnit-Test:applicationContext 未加载

于 2012-04-17T15:38:15.253 回答