我是编写junit测试用例的新手。
我有一个自定义项目阅读器,它从目录中读取文件并返回pojo。你能告诉我如何为这个自定义阅读器编写junit测试用例。
提前致谢
答案 0 :(得分:1)
您可以单独测试单个步骤。将对读者,处理器和作者进行测试。
参考代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { YourConfig.class })
public classSampleTests {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@setup
public void setup()
{
// do setup needed for your setp
}
@Test
public void testStep() throws Exception {
JobExecution jobExecution = jobLauncherTestUtils.launchStep("yourStep");
Assert.assertEquals("COMPLETED", jobExecution.getExitStatus());
}
}
答案 1 :(得分:1)
首先 - 您应该最终确定单元测试的范围&我们知道Spring批量阅读器的单元测试与任何常规Java类的单元测试没有什么不同。
如果测试范围包括阅读&验证实际的文件数据然后你需要在代码中处理它,这样你的测试就不会在任何地方失败,即你应该将读者中的逻辑修改成类似的东西,
一个。你在classpath&中保留了一个单元测试文件。某种可以从外部设置的标志,以便知道是否必须从claspath或disk发生读取
B中。您可以使读取器配置足以从类路径或磁盘设置文件位置,然后从单元测试中设置文件位置,将文件路径设置为类路径。
最后,我想说的是 - 不要编写可以处理来自磁盘或任何其他外部源的文件的单元测试。
如果单元测试范围不是关于阅读&验证实际文件,您可以简单地将该部分封装在某种服务中。在读者中注入依赖关系,并使用一些模拟框架来模拟它。
Rest将构建一个reader实例并调用read()
方法。
Niraj的回答可用于进行整体工作测试和单独的步骤测试,我不会称之为单元测试,以便读者从文件中读取数据。