英文美食网站怎么做,wordpress 4.1 主题,dz地方门户模板,网站备案密码是什么junit mockito从版本2.17.0开始#xff0c;如果使用了JUnit 5#xff0c; Mockito提供了官方#xff08;内置#xff09;支持来管理模拟生命周期。 入门 为了利用集成的优势#xff0c;需要在JUnit 5的junit-platform-engine旁边添加Mockito的mockito-junit-jupiter依赖项… junit mockito 从版本2.17.0开始如果使用了JUnit 5 Mockito提供了官方内置支持来管理模拟生命周期。 入门 为了利用集成的优势需要在JUnit 5的junit-platform-engine旁边添加Mockito的mockito-junit-jupiter依赖项有关详细信息请参见下文。 之后 MockitoException为JUnit 5启用新的Mockito扩展MockitoException 。 这就足够了。 所有的Mockito注释都应自动开始工作。 import org.junit.jupiter.api.Test; //do not confuse with org.junit.Test!
//other imports
import org.mockito.junit.jupiter.MockitoExtension;ExtendWith(MockitoExtension.class)
class SpaceShipJUnit5Test {InjectMocksprivate SpaceShip spaceShip;Mockprivate TacticalStation tacticalStation;Mockprivate OperationsStation operationsStation;Testvoid shouldInjectMocks() {assertThat(spaceShip).isNotNull();assertThat(tacticalStation).isNotNull();assertThat(operationsStation).isNotNull();assertThat(spaceShip.getTacticalStation()).isSameAs(tacticalStation);assertThat(spaceShip.getOperationsStation()).isSameAs(operationsStation);}
} 很好的是测试类和测试方法都不再需要公开了。 请注意 。 在类路径上也有JUnit 4例如通过junit-vintage-engine 进行测试的“旧版”部分不要将org.junit.jupiter.api.Test与旧的org.junit.Test混淆是很重要的。 不起作用。 存根和验证 如果由于某些原因您不喜欢AssertJ尽管我鼓励您至少尝试一下则JUnit 5提供了一个本地断言assertThrows 与AssertJ的assertThatThrownBy()非常相似。 在断言失败的情况下它提供了有意义的错误消息。 Test
void shouldMockSomething() {//givenwillThrow(SelfCheckException.class).given(tacticalStation).doSelfCheck(); //void method given..will not when..then cannot be used//whenExecutable e () - spaceShip.doSelfCheck();//thenassertThrows(SelfCheckException.class, e);
} 如果我不在这里不提我我不是我自己那就是利用对AssertJ和嘲笑java8中可用接口的默认方法的支持可以使很多静态导入变得多余。 ExtendWith(MockitoExtension.class)
class SpaceShipJUnit5Test implements WithAssertions, WithBDDMockito {...
}调整默认行为 还需要指出的是默认情况下使用JUnit 5扩展Mockito可以在“严格模式”下使用 。 例如这意味着不必要的存根将使测试失败。 尽管通常是代码气味但在某些情况下仍需要测试构造。 要更改默认行为可以使用MockitoSettings批注。 ExtendWith(MockitoExtension.class)
MockitoSettings(strictness Strictness.WARN)
class SpaceShipJUnitAdvTest implements WithAssertions, WithBDDMockito {....
}依存关系 正如我已经提到的要开始使用它需要在JUnit 5的junit-platform-engine旁边添加Mockito的mockito-junit-jupiter依赖项。 在Gradle构建中它可能类似于 dependencies {testCompile org.junit.vintage:junit-platform-engine:5.1.0testCompile org.mockito:mockito-junit-jupiter:2.17.2 //mockito-core is implicitly addedtestCompile org.junit.vintage:junit-vintage-engine:5.1.0 //for JUnit 4.12 test execution, if neededtestCompile org.assertj:assertj-core:3.9.1 //if you like it (you should ;) )
} 请注意 。 由于我在写这篇博客文章时发现通过构造函数将模拟注入最终字段中的错误 因此建议至少使用2.17.2版本而不是2.17.0版本。 该“开发”版本在Maven Central中不可用必须添加额外的Bintray存储库。 repositories {mavenCentral()maven { url https://dl.bintray.com/mockito/maven } //for development versions of Mockito
} 另外如果不对Gradle 4.6中的 JUnit 5测试执行使用全新的本机支持那将是一种浪费。 test {useJUnitPlatform()
} 自2016.2起IntelliJ IDEA就提供了JUnit支持当时的JUnit 5里程碑2。 Eclipse Oxygen最近似乎也增加了对JUnit 5的支持 。 摘要 在Mockito中具有对JUnit 5的本机支持真的很好。 没有取得成功仍在不断进行改进。 该功能由Christian Schwarz实现并由Tim van der Lippe在其他一些人的大力协助下进行了完善。 源代码可从GitHub获得 。 翻译自: https://www.javacodegeeks.com/2018/03/convenient-mocking-in-mockito-with-junit-5-the-official-way.htmljunit mockito