0

我正在尝试使用AbstractTransactionalJUnit4SpringContextTests. 我想使用executeSQLScript这个类的方法。

但是,当executeSQLScript调用方法时,它会抛出,NullPointerException因为simpleJdbcTemplate类的参数AbstractTransactionalJUnit4SpringContextTests没有被初始化。

我的代码如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:test-services-spring-context.xml"})
@TransactionConfiguration(transactionManager = "promoTransactionManager")
public class PromoBrickDAOIT extends AbstractTransactionalJUnit4SpringContextTests {

    @Autowired
    private PromoBricksDAO promoBricksDAO;

    @Before
    public void setUp(){
        executeSqlScript("classpath:testdata/sql/PromoBrick_Create.sql",     false);
    }

    @After
    public void tearDown(){
    }

    @Test  
    public void testPromoBrickGivenBrowseTaxonomyNodeId(){
        String btxNodeId = "v1_12";
        List<PromoBrick> promoBricks =     promoBricksDAO.findByBtxNodeId(btxNodeId);
        assertNotNull(promoBricks);
        assertEquals(promoBricks.size(), 1);
        PromoBrick promoBrick = promoBricks.get(0);
        assertNotNull(promoBrick);
    }


    public void setDataSource (@Qualifier("promoDataSource") DataSource     dataSource)    {
            super.setDataSource(dataSource);
    }
}

在此先感谢您的帮助!

4

1 回答 1

0

你缺少@Autowired你的setDataSource()方法。

请参阅Spring 参考手册的测试夹具的依赖注入部分中的最后一条注释。

于 2012-11-10T14:27:48.047 回答