如何使用 mockito 测试给定的代码

How to test given code using mockito

我想测试fan.setState方法是否被调用

class OffState implements State {

    @Override
    public void changeState(Fan fan) {
        fan.setState(new OnState());
    }

}

像这样:

@RunWith(MockitoJUnitRunner.class)
public class OffStateTest {

    @Mock
    private Fan fan;

    @Test
    public void testChangeState() {
        //Arrange
        OffState offState = new OffState();

        //Act
        offState.changeState(fan);

        //Assert
        Mockito.verify(fan).setState(Mockito.any(OnState.class));
    }
}