java - 如何使用 junit5 覆盖 taskExecutor.execute(new Runnable..) 中编写的代码
问题描述
想为执行方法中的代码编写junit5测试用例/覆盖如下是我的示例(虚拟)src类,实际方法包含项目很多业务逻辑。
如果我模拟 taskExecutor,它会使用虚拟值绕过整个 execute()。
任何建议我如何在附加代码中涵盖运行方法,下面是示例测试用例
解决方案
您可以将您的内联外包Runnable
给它自己的类,例如:
public class MyRunnable implements Runnable {
private final JdbcTemplate jdbcTemplate;
public MyRunnable(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void run() {
// ... do your logic here
}
}
然后为这个类编写一个单元测试来单独验证它的行为。
RedisScheduler
然后你可以在你的内部使用你的新类:
taskExecutor.execute(new MyRunnable(jdbcTemplate));
推荐阅读
- python - 如何覆盖枚举标志子类的迭代行为?
- python - tkinter doesn't work after building the app with cx_Freeze on python
- javascript - Waiting for variables to be defined?
- python - Loading Text Data from a CSV and Applying a Tokenizer in Keras
- flutter - Build multiple iOS / Android apps with one Flutter code-base?
- pandas - 根据条件对数据框应用过滤器
- c# - ASP.NET Core 3.1 and Entity Framework Core delete multiple records from database based on ID
- arrays - Iterate in array of type struct
- flutter - Radio app using flutter, audio stops after 3 mins when screen is off
- python - 如何让 Travis CI 在 python 中使用 input()?