如何使用 junit5 覆盖 taskExecutor.execute(new Runnable..) 中编写的代码
How to Cover code written inside taskExecutor.execute(new Runnable..) using junit5
想为 execute 方法中的代码编写 junit5 测试 case/coverage 如下是我的示例(虚拟)src class,实际方法包含项目的大量业务逻辑。
如果我模拟 taskExecutor,它会用虚拟值绕过整个 execute()。
关于如何在附加代码中覆盖 运行 方法的任何建议,下面是示例测试用例
您可以将您的 in-lined Runnable
外包给自己的 class,例如:
public class MyRunnable implements Runnable {
private final JdbcTemplate jdbcTemplate;
public MyRunnable(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void run() {
// ... do your logic here
}
}
然后为此 class 编写单元测试以单独验证其行为。
在您的 RedisScheduler
中,您可以使用新的 class:
taskExecutor.execute(new MyRunnable(jdbcTemplate));
想为 execute 方法中的代码编写 junit5 测试 case/coverage 如下是我的示例(虚拟)src class,实际方法包含项目的大量业务逻辑。
如果我模拟 taskExecutor,它会用虚拟值绕过整个 execute()。
关于如何在附加代码中覆盖 运行 方法的任何建议,下面是示例测试用例
您可以将您的 in-lined Runnable
外包给自己的 class,例如:
public class MyRunnable implements Runnable {
private final JdbcTemplate jdbcTemplate;
public MyRunnable(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void run() {
// ... do your logic here
}
}
然后为此 class 编写单元测试以单独验证其行为。
在您的 RedisScheduler
中,您可以使用新的 class:
taskExecutor.execute(new MyRunnable(jdbcTemplate));