VaporTestUtils is available through Swift Package Manager. To install, simply add the following line to the dependencies in your Package.swift file.
let package = Package(
name: "YourProject",
dependencies: [
...
.package(url: "https://github.com/Appsaurus/VaporTestUtils", from: "1.0.0"),
],
targets: [
.testTarget(name: "YourApp", dependencies: ["VaporTestUtils", ... ])
]
)
Check the app included in this project for a complete example. Here are some of the basics:
1. Import the library
import VaporTestUtils
2. Setup your test case
Create a test case inheriting from VaporTestCase
. Override computed properties booter
and configurer
and return the corresponding boot
and configure
functions from your app. Then, just start executing requests. Pretty simple stuff.
final class ExampleAppTests: VaporTestCase {
static var allTests = [
("testLinuxTestSuiteIncludesAllTests", testLinuxTestSuiteIncludesAllTests),
("testMyApp", testMyApp)
]
func testLinuxTestSuiteIncludesAllTests(){
assertLinuxTestCoverage(tests: type(of: self).allTests)
}
override var booter: AppBooter{
return ExampleApp.boot
}
override var configurer: AppConfigurer{
return ExampleApp.configure
}
override func setUp() {
super.setUp()
loggingLevel = .debug //This is optional. Logs all requests and responses to the console.
}
func testMyApp() throws {
let response = try executeRequest(method: .GET, path: "testing-vapor-apps")
XCTAssert(response.has(statusCode: .ok))
XCTAssert(response.has(content: "is super easy"))
}
}
Some extension methods were blatantly borrowed from LiveUI's VaporTestTools. You should also check their library out as it serves a similar purpose (and might be even better).
We would love you to contribute to VaporTestUtils, check the CONTRIBUTING file for more info.
VaporTestUtils is available under the MIT license. See the LICENSE file for more info.