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 は同じディレクトリで という名前の Spring 構成ファイルを探しますMyUnitTest-context.xml-context.xmlアプリケーション コンテキストを見つけるための最初の試行で、テスト クラス名にサフィックスを付けるだけです。@ContextConfiguration アノテーションには、アプリケーション コンテキストの検索に使用できる要素も含まれています。

于 2012-11-22T08:27:49.990 に答える