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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
在JUnit中使用@Rule測試文件和目錄
作者:網絡轉載 發布時間:[ 2015/5/13 10:40:25 ] 推薦標簽:單元測試工具

  伴隨JUnit中 TemporaryFolder @Rule 的出現,測試文件和目錄變得簡單了。
  在 JUnit 中,規則(@Rule)可作為構造測試用具(fixture)時初始化方法和清理方法的替代和補充(在 JUnit 中,這2種方法分別通過以下注解標注:org.junit.Before、org.junit.After、org.junit.BeforeClass 和 org.junit.AfterClass) 。而且規則的功能更加強大并且也更易于在項目和類之間共享。
  譯者注:測試用具是指作為測試運行基準的一組對象所呈現的一個穩定狀態。其目的是確保測試是運行在一個眾所周知的、穩定的環境中的,以實現測試的可重復執行。準備輸入數據、生成模擬對象(Mock)、將特定的數據加載到數據庫、復制一組特定的文件等,這些都屬于構造測試用具。
  待測試的代碼
  public void writeTo(String path, String content) throws IOException {
  Path target = Paths.get(path);
  if (Files.exists(target)) {
  throw new IOException("file already exists");
  }
  Files.copy(new ByteArrayInputStream(content.getBytes("UTF8")), target);
  }
  測試類
public class FileWriterTest {
private FileWriter fileWriter = new FileWriter();
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void throwsErrorWhenTargetFileExists() throws IOException {
// arrange
File output = temporaryFolder.newFile("output.txt");
thrown.expect(IOException.class);
thrown.expectMessage("file already exists");
// act
fileWriter.writeTo(output.getPath(), "test");
}
@Test
public void writesContentToFile() throws IOException {
// arrange
File output = temporaryFolder.newFolder("reports")
.toPath()
.resolve("output.txt")
.toFile();
// act
fileWriter.writeTo(output.getPath(), "test");
// assert
assertThat(output)
.hasContent("test")
.hasExtension("txt")
.hasParent(resolvePath("reports"));
}
private String resolvePath(String folder) {
return temporaryFolder
.getRoot().toPath()
.resolve(folder)
.toString();
}
}
  譯者注:第35行的 assertThat() 是類 org.assertj.core.api.Assertions 中的靜態方法。
  TemporaryFolder 提供了2個方法 newFile 和 newFolder,分別用于管理文件和目錄。這2個方法都可以返回所需要的對象。返回的文件或目錄都是由 setup 方法創建的并被存放在臨時目錄中。要想獲取臨時目錄自身的路徑,可以使用 TemporaryFolder 的 getRoot 方法。
  無論測試成功與否,任何在測試過程中添加到臨時目錄的文件或目錄都會在測試結束時刪除。
  本示例可以從我在 GitHub 上的項目 unit-testing-demo 中找到,除此之外該項目中還有很多其他示例可供諸位參考。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 717影院理论午夜伦不卡久久 | 日本一区二区在线视频 | 一级大片免费观看 | 国产欧美亚洲另类第一页 | 18黄无遮挡免费视频 | 欧美乱妇视频 | 人人爽人人爱 | 国产福利小视频 | 亚洲区精选网址 | 成人性色生活片免费看成人性 | 521a久久九九久久精品 | 亚洲一区中文字幕在线观看 | 亚洲成a人片77777老司机 | 亚洲三级视频 | 欧美在线成人免费国产 | 亚洲综合欧美日韩 | 美女福利影院 | 国产精品欧美久久久久天天影视 | 久草视频资源站 | 国产亚洲一区二区三区 | 亚欧乱色一区二区三区 | 日韩激情影院莉莉 | 无码免费一区二区三区免费播放 | 一级做a爰片毛片 | 嫩草影院懂你的影院 | 日韩毛片网 | 91妖精视频 | 毛片高清 | 欧美亚洲国产精品久久第一页 | 成人高清视频在线观看大全 | 成年人羞羞视频 | 青草草在线观看 | 一个人看的www免费观看视频 | 欧美午夜精品久久久久免费视 | 欧美成在线 | 亚洲视频在线观看网址 | 性欧洲黑人巨大videos | 亚洲国产一区二区a毛片 | 亚洲国产日韩a在线亚洲 | 一级黄色片免费观看 | 国产 欧美 日产久久 |