2012-11-22 80 views
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頁面上呈現。我只需要單獨列出模型列表?

回答

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註釋還包含一個可用於查找應用程序上下文的元素。

+0

我正在使用JMock,而不是真正的回購。 – mjgirl