我读了有关MockitoSession以及MockitoAnnotations.initMocks的文章,但我不明白两者之间的区别是什么?
MockitoAnnotations.initMocks(this);
Mockito.mockitoSession()
.initMocks(this)
.strictness(Strictness.STRICT_STUBS)
.startMocking();
mockitoSession做什么,而MockitoAnnotations不做什么?
答案 0 :(得分:1)
必须调用MockitoAnnotations.initMocks(this)方法来初始化带注释的字段。
MockitoAnnotations.initMocks(this);初始化带有Mockito注释的字段。 允许快速创建测试所需的对象。 最小化重复的模拟创建代码。 使测试类更具可读性。 由于使用字段名称标识模拟,使验证错误更易于阅读。
为
MockitoSession是模拟会话,在此期间用户创建和使用Mockito模拟。通常,会话是单个测试方法的执行。 MockitoSession初始化模拟,验证用法并检测不正确的存根。会话启动时,必须使用finishMocking()结束,否则在创建下一个会话时会触发UnfinishedMockingSessionException。
当您不能使用MockitoJUnitRunner或MockitoRule时,MockitoSession很有用。例如,您使用TestNG而不是JUnit。另一个例子是当使用不同的JUnit运行程序(Jukito,Springockito)时,它不能与Mockito自己的运行程序结合使用。