如何使用所需参数模拟 Runnable 子类的 运行() 方法

How to mock run() method of Runnable subclass with required parameters

我有一个实现 Runnable 接口的事件 class。如何为此 class 编写单元测试?

@Component("Event")
@RequiredArgsConstructor
@Slf4j
public class Event implements Runnable {

    private final Person person;
    private final Student student;
    
    @Override
    public void run() {

    //somecode;
    }
}

看了很多帖子,终于找到了解决办法。 由于 @RequiredArgsConstructor 参数,创建 Event class 的对象不会通过无参数构造函数发生。 单元测试用例中的代码 class :

@Mock Person person;

@Mock Student student;

@Injectmocks Event event;

@Test
private void testfunction(){

   Event event = new Event(person,student);

   event.run();

   //mockito.verify()...
}