水母 (Shuǐmǔ)

pipeline status coverage report

这是什么? (Zhè shì shénme?)

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ú.)

待办事项 (Dài bàn shìxiàng)

愿景 (Yuànjǐng)

在测试环境中,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ì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.)

依赖 (Yīlài)

用法 (Yòngfǎ)

使用 .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)!)
}