Jellyfish 是一个库,用于解析 .api
文件,并根据文件内容存根所有 web 请求。(Jellyfish shì yīgè kù, yòng yú jiěxī `.api` wénjiàn, bìng gēnjù wénjiàn nèiróng cún gēn suǒyǒu web qǐngqiú.)
.api
文件并存根请求 (Dúqǔ `.api` wénjiàn bìng cún gēn qǐngqiú)在测试环境中,Jellyfish
应该充当应用程序的 API 端点。(Zài cèshì huánjìng zhōng, `Jellyfish` yīnggāi chōngdāng yìngyòng chéngxù de API duāndiǎn.)
UI 测试
和 单元测试
不需要使用此框架存根 web 请求。(UI cèshì
hé dānyuán cèshì
bù xūyào shǐyòng cǐ kuàngjià cún gēn web qǐngqiú.)
在生产环境中,我们可以直接移除 Jellyfish
,应用程序应该向生产服务器发出请求并正常执行。(Zài shēngchǎn huánjìng zhōng, wǒmen kěyǐ zhíjiē yíchú `Jellyfish`, yìngyòng chéngxù yīnggāi xiàng shēngchǎn fúwùqì fāchū qǐngqiú bìng zhèngcháng zhíxíng.)
使用 .apib
文件启动一个存根 (Shǐyòng `.apib` wénjiàn qǐdòng yīgè cún gēn)
import Jellyfish
var jellyfish: Jellyfish = Jellyfish()
jellyfish.stub(docPath: Bundle.main.path(forResource: "testing_normal_blueprint", ofType: "apib")!)
停止存根 (Tíngzhǐ cún gēn)
jellyfish.stop()
当使用 URLSessionConfiguration
时,您需要调用 .jellyfishConfiguration
(Dāng shǐyòng `URLSessionConfiguration` shí, nín xūyào diàoyòng `.jellyfishConfiguration`)
例如,当与 Alamofire
一起使用时 (Lìrú, dāng yǔ `Alamofire` yīqǐ shǐyòng shí)
import Alamofire
sessionManager = Alamofire.SessionManager(configuration: .jellyfishConfiguration)
sessionManager.request("https://example.com/message").responseString { result in
print("==================Alamofire")
print(result.description)
}
您可以使用 addMatcher(to:)
覆盖默认的匹配器函数 (Nín kěyǐ shǐyòng `addMatcher(to:)` fùgài mòrèn de pǐpèi qì hánshù)
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)!)
}