【发布时间】:2016-07-19 15:10:41
【问题描述】:
我正在为我的项目编写测试用例,其中混合了 Objective C 和 Swift 代码。我知道 OCMock 框架,我以前用它来模拟/存根以在 Objective C 中编写测试用例。 但是我搜索了一下,发现它并不完全支持 swift,因为它是基于 Objective C 运行时的。 我正在尝试用 swift 语言编写测试用例。有没有办法我可以为服务级别层进行模拟/存根。例如。
func getPersonData(id:String, success: (ReponseEnum) -> Void, failure: (error: NSError) -> Void) {
let requestPara:NSDictionary = ["id": id]
let manager: MyRequestManager = MyRequestManager.sharedManager()
//MyRequestManager is nothing but AFNetworking class
let jsonRequest
/// Service request creation code here
// Service Call
manager.POST(url, parameters: jsonRequest, success: { (task: NSURLSessionDataTask!, responseObject: AnyObject!) -> () in
// Some business logic
//success block call
success (successEnum)
}) {(task: NSURLSessionDataTask!, error: NSError!) -> () in
// failure block call
failure (failureEnum)
}
}
这里如何模拟虚拟 responseObject 的 post 方法调用所以我可以编写测试用例?
【问题讨论】:
-
这里我们只是在需要时创建自己的模拟对象。到目前为止,我们还没有找到一个“工具”来为我们做这件事,而且它实际上相当简单。对于存根网络调用,我们使用 Mockingjay --> github.com/kylef/Mockingjay