了解 JobLauncherTestUtils
Understanding JobLauncherTestUtils
我目前正在理解 jobLauncherTestUtils
。我已经从多种资源中了解到它,例如:
https://docs.spring.io/spring-batch/docs/current/api/org/springframework/batch/test/JobLauncherTestUtils.html
https://livebook.manning.com/concept/spring/joblaunchertestutils
我想了解当我们调用 jobLauncherTestUtils.launchJob()
时,作业的端到端测试是什么意思。它是否真的启动了工作。如果是这样,那么在没有模拟的情况下测试工作有什么意义呢?如果不是这样,那么它如何实际测试工作?
I wanted to understand when we call jobLauncherTestUtils.launchJob(), what does it mean by end-to-end testing of job.
端到端测试意味着根据其输入和输出规范将作业作为黑盒进行测试。例如,假设您的批处理作业需要从数据库中读取数据 table 并将其写入平面文件。
端到端测试将:
- 用一些示例记录填充测试数据库
- 运行 你的工作
- 断言输出文件包含预期的记录
无需单独测试此作业的内部步骤,您正在测试其从端(输入)到端(输出)的功能。
JobLauncherTestUtils
是一个实用程序 class,它允许您像这样 运行 整个工作。如果需要,它还允许您单独测试作业中的单个步骤。
Does it actually launch the job.
是的,这份工作 运行 就好像 运行 在测试之外。 JobLauncherTestUtils
只是一个实用程序 class,它在幕后使用常规 JobLauncher
。您可以 运行 在没有此实用程序的情况下进行单元测试 class。
If so, then what's the point of testing the job without mocks?
在没有模拟的情况下测试作业的目的是确保作业在其依赖或与之交互的真实资源下按预期工作。您始终可以在测试中模拟数据库或消息代理,但模拟代码可能存在错误并且无法反映数据库或消息代理的真实行为。
我目前正在理解 jobLauncherTestUtils
。我已经从多种资源中了解到它,例如:
https://docs.spring.io/spring-batch/docs/current/api/org/springframework/batch/test/JobLauncherTestUtils.html
https://livebook.manning.com/concept/spring/joblaunchertestutils
我想了解当我们调用 jobLauncherTestUtils.launchJob()
时,作业的端到端测试是什么意思。它是否真的启动了工作。如果是这样,那么在没有模拟的情况下测试工作有什么意义呢?如果不是这样,那么它如何实际测试工作?
I wanted to understand when we call jobLauncherTestUtils.launchJob(), what does it mean by end-to-end testing of job.
端到端测试意味着根据其输入和输出规范将作业作为黑盒进行测试。例如,假设您的批处理作业需要从数据库中读取数据 table 并将其写入平面文件。
端到端测试将:
- 用一些示例记录填充测试数据库
- 运行 你的工作
- 断言输出文件包含预期的记录
无需单独测试此作业的内部步骤,您正在测试其从端(输入)到端(输出)的功能。
JobLauncherTestUtils
是一个实用程序 class,它允许您像这样 运行 整个工作。如果需要,它还允许您单独测试作业中的单个步骤。
Does it actually launch the job.
是的,这份工作 运行 就好像 运行 在测试之外。 JobLauncherTestUtils
只是一个实用程序 class,它在幕后使用常规 JobLauncher
。您可以 运行 在没有此实用程序的情况下进行单元测试 class。
If so, then what's the point of testing the job without mocks?
在没有模拟的情况下测试作业的目的是确保作业在其依赖或与之交互的真实资源下按预期工作。您始终可以在测试中模拟数据库或消息代理,但模拟代码可能存在错误并且无法反映数据库或消息代理的真实行为。