我在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页面上。我是否必须单独将列表放在模型上?
答案 0 :(得分: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
的Spring配置文件。在第一次尝试查找应用程序上下文时,它只是将-context.xml
后缀为您的测试类名称。 @ContextConfiguration批注还包含一个可用于定位应用程序上下文的元素。