Skip to content

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

License

Notifications You must be signed in to change notification settings

shindyu/XCTestExtensions

Repository files navigation

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published