亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 91原创视频在线观看 | 狠狠色成色综合网 | 色片视频| 8x成人永久在线观看视频 | 国产成+人+综合+亚洲 欧美 | 男女爱视频免费高清在线观看 | 麻豆亚洲一区 | 99爱视频99爱在线观看免费 | 日日操夜夜骑 | 成 人 免 费 黄 色 | 全黄性| 欧美国产激情二区三区 | 日韩成人高清 | 97干婷婷 | 性欧美free荷兰hd | 欧美亚洲另类在线 | 谁有免费黄色网址 | 日本青草视频 | 福利在线影院 | 天天操天天干视频 | 国产精品久久久尹人香蕉 | 欧美色图一区 | 免费一级成人毛片 | 在线看一级片 | 亚洲婷婷网 | 天天干天天曰天天操 | 天天做天天爱天天一爽一毛片 | 一级毛片在线不卡直接观看 | 国产污污视频 | 日韩成人影院 | 福利网站在线观看 | 制服丝袜在线看 | 在线观看欧美一区 | 国产人妖性一区二区 | 高清国语自产拍免费视频国产 | 男女男精品视频在线播放 | 最近2019中文字幕高清字幕 | 麻豆一区二区 | 欧美一级黄色片视频 | 一本大道香一蕉久在线影院 | 一级毛片在线直接观看 |