1

我在 Spring 控制器测试中有这个测试代码

Student student = studentService.getByNumber(767001);
    student.setCourseRights(courseRightService.getCourseRights(student));
    model.addAttribute("student", student);


    Student s = (Student) model.asMap().get("student"); 

我怎样才能掌握学生的属性来断言它们?

    Assert.assertEquals(1, rights.size());   

List<GrantedCourseRight> rights = (List<GrantedCourseRight>) model.asMap().get("student.courseRights");

不起作用,allthought student.courseRight 变量显示在 jsp 页面上。我只需要将列表单独放在模型上吗?

4

1 回答 1

0

Spring Test项目提供了一整套功能,允许您在 Junit 中测试您的 Spring 应用程序。基本上,您希望在运行 Junit 测试之前建立应用程序上下文,这将允许您使用依赖注入来注入服务的 bean。

为了建立这种支持,我们用几个 Spring 注释来注释我们的测试类。

MyUnitTest.java

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@Transactional
public class SkillRepositoryTest {

    @Autowired
    SkillRepository repository;

    @Test
    public void findOneTest(){
        Skill skill = repository.findOne(1);
        assertNotNull(skill);
        assertEquals("Java", skill.getName());
    }
}

运行测试时,Spring 将在同一目录中查找名为MyUnitTest-context.xml. -context.xml在第一次尝试查找应用程序上下文时,它只是作为您的测试类名称的后缀。@ContextConfiguration 注释还包含一个可用于定位应用程序上下文的元素。

于 2012-11-22T08:27:49.990 回答