shindyu / XCTestExtensions

XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XCTestExtensions

Build Status

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:

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.

About

XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test.

License:MIT License


Languages

Language:Swift 97.9%Language:Objective-C 2.1%