3

私は春のコードをテストするのが好きです:

@ContextConfiguration(locations = { "/applicationContext.xml" })
@Transactional()
public class Test {

    @Autowired
    MyDao dao;

    @org.junit.Test
    @Rollback(false)
    public void testSomething() throws Exception {
        MyEntity e = new MyEntity();
        dao.create(e);
    }
}

このテストを eclipse で (JUNIT テストとして) 実行すると、Nullpointer-Exception が発生します。

私は何を間違えましたか?どうも!

4

2 に答える 2

4

@RunWith(SpringJUnit4ClassRunner.class)クラスに追加するだけです:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext.xml" })
@Transactional()
public class Test {

    @Autowired
    MyDao dao;

    @org.junit.Test
    @Rollback(false)
    public void testSomething() throws Exception {
        MyEntity e = new MyEntity();
        dao.create(e);
    }
}

あなたはそれが必要spring-testです。

于 2013-08-17T17:41:30.360 に答える
2

このようなトランザクション テスト基本クラスを追加できます。

@ContextConfiguration(locations = "classpath*:applicationContext.xml")
public class IntegrateTestBase extends AbstractTransactionalJUnit4SpringContextTests {
}

次に、テストクラスを記述します

public class Test extends IntegrateTestBase {

    @Autowired
    MyDao dao;

    @org.junit.Test
    @Rollback(false)
    public void testSomething() throws Exception {
        MyEntity e = new MyEntity();
        dao.create(e);
    }
}

各テストクラスに@ContextConfigurationandを記述する必要はありません@Transcational

于 2013-08-17T17:52:50.153 に答える