XCTestExtensions
XCTestExtensions copied to clipboard
XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test.
XCTestExtensions
Features
-
[x]
XCTAssertEventually
(that convenient assertions for writing Unit Test).- Use "XCTAssertEventually", you can write asynchronous assertions very easily and intuitively, like Nimble's toEventually.
-
[x]
XCTxContext
(It is a wrapper of XCTContext.runActivity.)-
XCTxContext
can internally test setup and tearDown of TestClass. Of course you can not do it.
-
Installation
Installing with Carthage
Add to Cartfile.private
github "shindyu/XCTestExtensions"
Usage
Import XCTestExtensions
to Unit tests files:
import XCTestExtensions
Use XCTestExtensions
's extensions in your tests:
For example, Applying it to the asynchronous test of the official document of apple, it can be described as follows:
func testDownloadWebData_UsingXCTAssertEventually() {
XCTxContext("you can describe context") {
let url = URL(string: "https://apple.com")!
var downloadData: Data?
let dataTask = URLSession.shared.dataTask(with: url) { (data, _, _) in
downloadData = data
}
dataTask.resume()
XCTAssertNotNilEventually(downloadData)
}
}
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/shindyu/XCTestExtensions
License
XCTestExtensions is available as open source under the terms of the MIT License.