Jellyfish is a library that parse .api files and stub all web request according to the file contents.
- Read
.apifiles and stub requests - Custom matching handler
- Provide options to match json schema
When in testing environment, Jellyfish should serve as api endpoint for the app.
UI Tests and Unit Tests don't need to stub web request with this framework.
As in production environment, we can just remove Jellyfish and the app should make request to production server and perform normally.
Start a stub with .apib file
import Jellyfish
var jellyfish: Jellyfish = Jellyfish()
jellyfish.stub(docPath: Bundle.main.path(forResource: "testing_normal_blueprint", ofType: "apib")!)Stop the stub
jellyfish.stop()When using URLSessionConfiguration, you need to call .jellyfishConfiguration
For example, when use with Alamofire
import Alamofire
sessionManager = Alamofire.SessionManager(configuration: .jellyfishConfiguration)
sessionManager.request("https://example.com/message").responseString { result in
print("==================Alamofire")
print(result.description)
}You can override default matcher function with addMatcher(to:)
jellyfish.addMatcher(to: "/message") { req in
let str: String = "This is a message"
return APIResponse(headers: ["Server": "Custom Handler"], responseCode: 200, body: str.data(using: .utf8)!)
}
