Awesome
XCTestExtensions
Features
-
XCTAssertEventually
(that convenient assertions for writing Unit Test).- Use "XCTAssertEventually", you can write asynchronous assertions very easily and intuitively, like Nimble's toEventually.
-
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:
<img src="https://raw.githubusercontent.com/shindyu/XCTestExtensions/master/img/method_completion.png">
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.