【发布时间】:2019-01-26 09:28:22
【问题描述】:
我想加载一个 JSON 文件并将其转换为数据作为我的单元测试的一部分。
这样我可以断言我的服务如何处理响应,但是我不想用大量的 json 块填充每个测试用例。我希望将文件保存在与测试用例相同的目录中,但是尝试运行测试会引发异常,因为找不到文件。
func test_ViewDidLoad_CallsContentService() {
let contentExpectation = expectation(description: "FetchContentEntry")
let httpClient = HTTPClient()
let response = createURLResponse(forUrl: "https://foo.bar", withStatusCode: 200)
httpClient.session = MockURLSession(data: mockContentData, urlResponse: response, error: nil)
.....
}
我的文件被引用为
extension ContentSceneTests {
.........
var mockContentData: Data {
let data = try! Data(contentsOf: URL(fileURLWithPath: "./ContentResponse.json"), options: .alwaysMapped)
return data
}
}
文件彼此相邻,例如
ContentSceneTests.swift
内容响应.json
【问题讨论】:
-
能否捕获异常(找不到文件)并打印当前目录是什么?
标签: ios swift unit-testing xctest