如何在spring boot应用程序中测试计划的作业任务?
package com.myco.tasks;
public class MyTask {
@Scheduled(fixedRate=1000)
public void work() {
// task execution logic
}
}
这通常很难。您可以考虑在测试期间加载Spring上下文并从中伪造一些bean,以便能够验证计划的调用。
我在Github repo中有这样的例子。有一个使用所述方法测试的简单计划示例。
我的问题是:“你想考什么?
如果您的答案是“我想知道Spring在我希望的时候运行我的计划任务”,那么您正在测试Spring,而不是您的代码。这不是您需要单元测试的东西。
如果您的回答是“我想知道我是否正确配置了任务”,那么请编写一个包含经常运行的任务的测试应用程序,并验证该任务是否在您预期的运行时间运行。这不是单元测试,但将表明您知道如何正确配置任务。
如果答案是“我想知道我写的任务功能正确”,那么你需要单元测试任务方法。在你的例子中,你想单元测试work()
方法。通过编写一个直接调用你的任务方法(work()
)的单元测试来做到这一点。例如,
public class TestMyTask
{
@InjectMocks
private MyTask classToTest;
// Declare any mocks you need.
@Mock
private Blammy mockBlammy;
@Before
public void preTestSetup()
{
MockitoAnnotations.initMocks(this);
... any other setup you need.
}
@Test
public void work_success()
{
... setup for the test.
classToTest.work();
.. asserts to verify that the work method functioned correctly.
}
如果我们假设您的作业在很短的时间间隔内运行,您真的希望测试等待作业执行,并且您只想测试是否调用了作业,那么您可以使用以下解决方案:
向类路径添加等待性:
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
写入测试类似于:
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@SpyBean
private MyTask myTask;
@Test
public void jobRuns() {
await().atMost(Duration.FIVE_SECONDS)
.untilAsserted(() -> verify(myTask, times(1)).work());
}
}
主要内容:测试计划的类型,如何编写测试计划,测试计划指南测试计划是描述软件测试领域和活动的详细文档。它概述了测试策略,目标,测试计划,所需资源(人力资源,软件和硬件),测试评估和测试可交付成果。 测试计划是每个软件测试的基础。这是最重要的活动,可确保以适当的顺序提供所有计划活动清单。 测试计划是用于将软件测试活动作为定义的过程进行的模板,该过程由测试经理完全监视和控制。 测试计划的类型 测试计划有三种类型 主测试计划 阶段测试计划 测试特定类型的测试计
我试图为使用Spring Data REST构建的REST API设置单元测试。我有这样一个存储库: 我的测试看起来是这样的: 最后,日志 编辑:beerRepositoryMock 谢谢
抱歉,这似乎是一个无用的行为,但我们有没有办法在Spring Boot(1.3.8.RELEASE)的应用程序上进行junit测试。java这个类除了启动Spring Boot应用程序之外什么都不做? 如下所示: 也许我可以尝试捕捉异常?但我还可以测试什么,以便JUnit测试SpringApplication呢。run()?任何例子都值得赞赏。谢谢大家!
主要内容:测试计划注意事项 -可以将测试计划可视化为用于运行测试的JMeter脚本。 测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。 测试计划包含执行脚本的所有步骤。 测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行。 下图给出了测试计划的目录级别。 测试计划注意事项 - 在运行整个测试计划之前,应保存测试计划。 JMeter文件或测试计划以扩
本文向大家介绍详解Spring MVC如何测试Controller(使用springmvc mock测试),包括了详解Spring MVC如何测试Controller(使用springmvc mock测试)的使用技巧和注意事项,需要的朋友参考一下 在springmvc中一般的测试用例都是测试service层,今天我来演示下如何使用springmvc mock直接测试controller层代码。 1
我需要测试使用@ConfigurationProperties bean的自动配置类。我正在使用中记录的ApplicationContextRunnerhttps://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-具有测试自动配置功能,可以加快测试速度,避免在每个变体之间启