亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
使用 JUnit 5 進行單元測試
作者:ibm 發布時間:[ 2017/3/24 15:27:42 ] 推薦標簽:單元測試 Junit 5 單元測試工具

  清單 22. 參數解析的示例
  public class APIEnvResolver implements ParameterResolver {
  @Override
  public boolean supports
  (final ParameterContext parameterContext,
  final ExtensionContext extensionContext) throws
  ParameterResolutionException {
  return parameterContext.getParameter().getType() == String.class
  && parameterContext.getIndex() == 0;
  }
  @Override
  public Object resolve(final ParameterContext parameterContext,
  ? final ExtensionContext extensionContext)
  throws ParameterResolutionException {
  return "DEV";
  }
  }
  清單 23 給出了使用參數解析擴展的示例。
  清單 23. 使用參數解析擴展的示例
  @ExtendWith(APIEnvResolver.class)
  public class APITests {
  @Test
  public void showResolved(final String env) {
  assertEquals("DEV", env);
  }
  }
  測試執行回調方法
  JUnit 5 提供了一系列與測試執行過程相關的回調方法,在測試執行中的不同階段,運行自定義的邏輯。這些回調方法可以用來做一些與日志和性能分析的任務。具體的回調方法和描述見表 3。
  表 3. 測試執行中的回調方法

  清單 24 中給出了使用測試執行中的回調方法的示例。
  清單 24. 使用測試執行回調方法的示例
  public class Timing implements BeforeTestExecutionCallback,
  AfterTestExecutionCallback {
  @Override
  public void beforeTestExecution
  (final TestExtensionContext context) throws Exception {
  getStore(context).put
  (context.getTestMethod().get(), System.currentTimeMillis());
  }
  @Override
  public void afterTestExecution
  (final TestExtensionContext context) throws Exception {
  final Method testMethod = context.getTestMethod().get();
  final long start = getStore(context).remove(testMethod, long.class);
  final long duration = System.currentTimeMillis() - start;
  context.publishReportEntry(ImmutableMap.of
  (testMethod.getName(), Long.toString(duration)));
  }
  private Store getStore(TestExtensionContext context) {
  return context.getStore(Namespace.create(getClass(), context));
  }
  }
  異常處理
  通過 TestExecutionExceptionHandler 接口可以對測試運行中拋出的異常進行處理。可以在運行中忽略某些異常,或是在特定類型的異常發生時執行某些處理動作,如可以在出現數據庫異常時回滾事務。清單 25 給出了異常處理的示例。
  清單 25. 異常處理的示例
  public class IgnoreNullPointerException implements
  TestExecutionExceptionHandler {
  @Override
  public void handleTestExecutionException
  (final TestExtensionContext context,
  final Throwable throwable) throws Throwable {
  if (throwable instanceof NullPointerException) {
  return;
  }
  throw throwable;
  }
  }
  遷移指南
  JUnit 平臺可以通過 Jupiter 引擎來運行 JUnit 5 測試,Vintage 引擎來運行 JUnit 3 和 JUnit 4 測試。因此,已有的 JUnit 3 和 4 的測試不需要任何修改可以直接在 JUnit 平臺上運行。只需要確保 Vintage 引擎的 jar 包出現在 classpath 中,JUnit 平臺會自動發現并使用該引擎來運行 JUnit 3 和 4 測試。開發人員可以按照自己的項目安排來規劃遷移到 JUnit 5 的進度。可以保持已有的 JUnit 3 和 4 的測試用例不變,而新增加的測試用例則使用 JUnit 5。
  在進行遷移的時候需要注意如下的變化:
  注解在 org.junit.jupiter.api 包中,斷言在 org.junit.jupiter.api.Assertions 類中,前置條件在 org.junit.jupiter.api.Assumptions 類中。
  把@Before 和@After 替換成@BeforeEach 和@AfterEach。
  把@BeforeClass 和@AfterClass 替換成@BeforeAll 和@AfterAll。
  把@Ignore 替換成@Disabled。
  把@Category 替換成@Tag。
  把@RunWith、@Rule 和@ClassRule 替換成@ExtendWith。
  小結
  單元測試是應用程序不可或缺的一部分。作為 Java 開發中單元測試的事實標準,JUnit 被廣泛使用。本文詳細介紹了在 JUnit 5 中編寫和運行測試用例的方式,并對新的擴展機制做了詳細介紹。在編寫測試用例方面,本文介紹了 JUnit 5 中新的注解、斷言和前置條件,以及對于嵌套測試、依賴注入和動態測試的支持。在運行測試用例方面,詳細介紹了通過 Gradle、Maven 和命令行來運行 JUnit 5 測試。擴展機制作為 JUnit 5 的一大亮點,本文詳細介紹了如何通過擴展來添加測試執行條件、后處理測試實例、解析測試和處理異常等。開發人員可以現在嘗試 JUnit 5 中的新功能。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美三级欧美做a爱 | 日本3p视频在线看高清 | 欧美精品一区二区三区四区 | 成人网视频在线观看免费 | 青青草国产精品欧美成人 | 日本国产在线视频 | 日韩欧美网站 | 国产日产高清欧美一区二区三区 | 亚洲欧美人成人综合在线50p | 羞羞视频在线观看 | 九月婷婷人人澡人人添人人爽 | 日日夜夜天天 | 免费一级黄色录像 | 欧美理论影院在线观看免费 | 一个人看的免费视频www中国 | 欧美乱人伦中文在线观看不卡 | 在线播放 你懂的 | 香蕉视频在线观看网站 | 精品一区二区视频 | 一个人看www免费视频 | 中国护士一级毛片免费版本 | 青草免费视频 | 国产精品一区二区久久精品 | 亚洲一区二区三 | 最近更新2019中文字幕 | 欧美一区二区三区久久久 | 大尺度激烈叫床视频免费 | 日韩在线精品视频 | 国产成人精品免费久久久久 | 青青青国产依人精品视频 | 蜜臀91精品国产免费观看 | 国产日本三级欧美三级妇三级四 | 极品美女aⅴ高清在线观看 极品美女丝袜被的网站 | 色视频在线观看免费 | 欧美黄色精品 | 亚洲视频免费播放 | 亚洲香蕉视频 | 男女拍拍拍无挡免费视频 | 色婷婷婷丁香亚洲综合不卡 | 日本成年免费网站 | 伊人最新网址 |