亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 最新国产精品精品视频 | 黄色网址日本 | 欧美一区二区另类有声小说 | 五月丁香六月综合缴清无码 | 日本成年免费网站 | 免费看片黄 | 免费成年人视频在线观看 | 国内一卡2卡三卡四卡在线 国外欧美一区另类中文字幕 | 国产一级一片免费播放视频 | 涩涩视频在线观看入口 | 成熟女人免费一级毛片 | 免费成人短视频 | 黄色福利网站 | 日日摸夜夜添夜夜添aa | h视频网站在线 | 手机日韩 | 伊人网视频 | 九九这里只精品视在线99 | 狠狠色欧美亚洲狠狠色五 | 2020久久国产最新免费观看 | 国产一区二区三区欧美 | 久久这里只有精品免费看青草 | 一本视频在线 | 国产成人综合网亚洲欧美在线 | 久久久久国产一级毛片高清板 | 国产成人精品一区二三区 | 在线观看亚洲一区 | 欧美精品亚洲人成在线观看 | 免费乱理伦片手机在线观看 | 国内精品久久久久不卡 | 亚洲一片 | 国产高清一区二区三区视频 | 黄色在线网站视频 | 日韩视频一区二区三区 | 欧美国产在线看 | 国产一级高清视频在线 | 欧美成人se01短视频在线看 | 北条麻妃在线一区二区 | 青草色视频 | 性xxxxx大片免费视频 | 一区二区视频在线 |