这个自定义阅读器的junit测试用例

时间:2017-07-05 09:03:25

标签: java junit spring-batch

我是编写junit测试用例的新手。

我有一个自定义项目阅读器,它从目录中读取文件并返回pojo。你能告诉我如何为这个自定义阅读器编写junit测试用例。

提前致谢

2 个答案:

答案 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类的单元测试没有什么不同。

  1. 如果测试范围包括阅读&验证实际的文件数据然后你需要在代码中处理它,这样你的测试就不会在任何地方失败,即你应该将读者中的逻辑修改成类似的东西,

    一个。你在classpath&中保留了一个单元测试文件。某种可以从外部设置的标志,以便知道是否必须从claspath或disk发生读取

    B中。您可以使读取器配置足以从类路径或磁盘设置文件位置,然后从单元测试中设置文件位置,将文件路径设置为类路径。

    最后,我想说的是 - 不要编写可以处理来自磁盘或任何其他外部源的文件的单元测试。

  2. 如果单元测试范围不是关于阅读&验证实际文件,您可以简单地将该部分封装在某种服务中。在读者中注入依赖关系,并使用一些模拟框架来模拟它。

  3. Rest将构建一个reader实例并调用read()方法。

    Niraj的回答可用于进行整体工作测试和单独的步骤测试,我不会称之为单元测试,以便读者从文件中读取数据。

相关问题