• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在 iOS 测试中实际使用 Stub 或 Mocking 对象?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 10:29:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的问题分为两部分。

首先,我对 iOS 中的测试有非常基本的了解,我正在尝试学习使用模拟。据我所知,当难以访问该对象(例如查询数据库或不可预测的情况)时,模拟对象是对假对象的模拟。你能解释一个简单的例子如何模拟数据库的行为吗?

在我的情况下,我想测试从 Facebook API 的 API 调用接收到的 JSON 数据包。我想确保这些数据包不为空并且存在特定节点。对此进行测试的最佳方法是什么?



Best Answer-推荐答案


stub 是一种伪造物,在调用时提供固定响应。 模拟 是一种记录其调用方式的伪造品。这就是为什么模拟对象框架(例如 OCMockOCMockito )基本上可以让您:

  • 制作一个假的
  • stub 方法以返回预定的响应
  • 验证是否使用特定参数调用了方法

我建议一开始不要使用模拟对象框架。相反,通过子类化 NSObject 并定义您需要的方法子集来手动创建它们。 stub 将简单地返回 jar 头响应。模拟将记录方法的参数。一旦掌握了它(并且厌倦了编写样板代码),然后切换到模拟对象框架。但是您会通过手工操作学到很多东西。

接下来您需要的是一种方法,让您的 stub /模拟进入它们被调用的位置。这是用 Dependency Injection 完成的.理想情况下,您将它们传递到对象的初始值设定项中——测试将通过假的,生产代码将通过真实的东西。

然后每个测试都应该设置一个场景。例如,您可以假设您获得了具有各种参数的有效 JSON。您可以假装得到各种错误响应。

关于ios - 如何在 iOS 测试中实际使用 Stub 或 Mocking 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328592/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap