尝试 运行 存储库 impl 与自动装配的候选人进行测试
trying to run repository impl with autowired candidates for testing
我很好奇有一种方法可以让我 运行 一个包含自动装配候选人的存储库 impl,以及一个应用程序 main() (用于测试目的)。
我知道问题是包含 main 的 repo class 没有连接到 main() 方法中,这导致 none 自动连接的候选人被连接但是我找不到实现此目的的语法。
下面是示例代码片段,以及我遇到问题的部分中的评论
@Repository
@Transactional
public class RepositoryImpl implements Repository {
@Autowired
JdbcTemplate jdbcTemplate;
String query = "some query"
@Override
public boolean runQuery() {
Object[] params = {param1, param2};
boolean result = jdbcTemplate.queryForObject(query , params, Integer.class) == 1;
return result;
}
//included just for testing purposes
public static void main(String[] args) {
/*this is where i would like to run runQuery() to see a sample output
* something like this:
* repositoryImpl = new RepositoryImpl();
* syso(repositoryImpl.runQuery());
*/
}
}
我 运行 进入一个空指针,该指针来自 jdbc 模板,未正确连接。有人可以指导我如何使用自包含应用程序 main() 自动装配 class 吗?
这可能吗?
感谢您的帮助!
您无法轻松地为静态方法自动装配 (little hack)。
测试某物的最简单方法是...编写测试 ;)
@RunWith(SpringJUnit4ClassRunner.class)
public class RepositoryImplTest {
@Autowired
private Repository repository;
@Test
public void testJob() throws Exception {
//when
boolean val = repository.runQuery();
Assert.assertTrue(val);
}
}
我很好奇有一种方法可以让我 运行 一个包含自动装配候选人的存储库 impl,以及一个应用程序 main() (用于测试目的)。
我知道问题是包含 main 的 repo class 没有连接到 main() 方法中,这导致 none 自动连接的候选人被连接但是我找不到实现此目的的语法。
下面是示例代码片段,以及我遇到问题的部分中的评论
@Repository
@Transactional
public class RepositoryImpl implements Repository {
@Autowired
JdbcTemplate jdbcTemplate;
String query = "some query"
@Override
public boolean runQuery() {
Object[] params = {param1, param2};
boolean result = jdbcTemplate.queryForObject(query , params, Integer.class) == 1;
return result;
}
//included just for testing purposes
public static void main(String[] args) {
/*this is where i would like to run runQuery() to see a sample output
* something like this:
* repositoryImpl = new RepositoryImpl();
* syso(repositoryImpl.runQuery());
*/
}
}
我 运行 进入一个空指针,该指针来自 jdbc 模板,未正确连接。有人可以指导我如何使用自包含应用程序 main() 自动装配 class 吗?
这可能吗?
感谢您的帮助!
您无法轻松地为静态方法自动装配 (little hack)。
测试某物的最简单方法是...编写测试 ;)
@RunWith(SpringJUnit4ClassRunner.class)
public class RepositoryImplTest {
@Autowired
private Repository repository;
@Test
public void testJob() throws Exception {
//when
boolean val = repository.runQuery();
Assert.assertTrue(val);
}
}