首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏iOS技术

    OCMock 源码分析

    对于 Objective-C 来说可能就得借助 OCMock 这种组件来伪造隐藏在代码细节中的测试条件。 然而大量使用 OCMock 给单测稳定性带来挑战,究其原因还是对 OCMock 本身的实现不够了解,可能它的一个实现细节就带来了多个不同的 Bad Case。 不过细心的同学可能会疑惑,这里触发的消息转发时机与上下文如何让 OCMock 组件感知到? ,由于对象是被 Mock 过的,所以调用原方法实现是调用ocmock_replaced_为前缀的方法,只要这期间进行了-stopMocking操作,就可能导致 isa 指向复原而找不到ocmock_replaced 后语 总的来说 OCMock 的核心部分设计得比较精致,里面大量的 Type Encoding 处理需要时也可以借鉴一下。

    92551发布于 2020-08-04
  • 来自专栏iOS开发~

    iOS_单元测试三之OCMock使用

    OCMock 文章目录 OCMock 1、创建模拟对象 Creating mock objects 1.1、模拟实例 Class mocks 1.2、模拟代理 Protocol mocks 1.3、严格模拟 )Fulfilling XCTest expectations 2.13、记录消息(需要OCMock3.8)Logging messages 2.14、打开调试,断点会生效(需要OCMock3.8) 3 堆栈将在 OCMock 的实现中的某个地方结束,但是如果您进一步查看,越过__forwarding__帧,您应该能够看到您的代码调用该方法的位置。 OCMock知道KVO,并小心避免与之发生冲突 对于其它框架,OCMock仅提供了一种选择退出模拟以免发生意外行为的机制 + (BOOL)supportsMocking:(NSString **)reason 10.10、测试中使用多线程 OCMock 不是完全线程安全的。直到 3.2.x 版本 OCMock 根本不知道线程。

    3.9K20编辑于 2022-07-20
  • 来自专栏iOS逆向与安全

    CocoaPods 使用手册:1、基础 2、高级用法: podspec.json、tweak集成AsyncSocket、 静态库

    # 针对MyApp target引入AFNetworking # 针对MyAppTests target引入OCMock, target 'MyApp' do pod 'AFNetworking :search_paths pod 'OCMock', '~> 2.0.1' end end # 这个是cocoapods的一些配置,官网并没有太详细的说明,一般采取默认就好了 search_paths pod 'Specta', '~> 1.0' # pod 'Expecta', '~> 1.0' # expecta matchers # pod 'OCMock ', '~> 2.2' # OCMock # pod 'OCHamcrest', '~> 3.0' # hamcrest matchers # pod 'OCMockito ', '~> 1.0' # OCMock # pod 'LRMocky', '~> 0.9' # LRMocky end end 1.3.1 忽略 CocoaPods

    3.5K20发布于 2021-03-08
  • 来自专栏iOS开发~

    iOS_单元测试三之OCMockDemo

    OCMock使用举例 文章目录 OCMock使用举例 一、需要测试的代码: 二、测试步骤: 1、准备数据 2、添加预期 可以预期不执行: 可以验证参数: 可以预期执行顺序: 可以忽略参数(预期方法执行时

    44630编辑于 2022-07-20
  • 来自专栏腾讯移动品质中心TMQ的专栏

    PICK一下,iOS自动化测试新方案出道

    第三个用例:使用OCmock,mock网络请求返回网络有问题 ? 四、用例编写技巧 用例的编写与断言是自动化测试的一块核心内容,如何快速地编写又快又好的用例,这其中也有很多技巧。 OCMock单元测试都是基于底层接口的测试,稳定性高。 OCMock不依赖UI,所以执行效率最高。 OCMock单元测试也是基于接口的,维护成本低。 ** OCMock单元测试**做不到验证UI效果的能力,一般都是作为接口测试。

    2.6K61发布于 2019-06-06
  • 来自专栏移动端开发

    单元测试 - Tests和UITests (一) 业务测试

    code you want to measure the time of here. }]; } Mock ---- 说实话能进行mock的工具真的是太多了,我这里还是推荐一下 OCMock 至于iOS怎么引入OCMock大家直接去 官网文档 查看就可以了,我们这里就不在多说了! 当然你也可以使用CocoaPods直接 pod OCMock 下面这一大段代码就是OCMock官网给出的它的基本的使用的中文版本,可以对比学习一下,不过在上手之前我还是建议大家读一下这篇文章 这个方法应该返回一个BOOL值,表示这个参数是否和预期的一样. 4.4 使用Hamcrest来匹配 OCMStub([mock someMethod:startsWith(@"foo")] OCMock classMock copy])).andReturn(myObject); 可以置换创建对象的 类/实例方法.当被置换的方法以 alloc,new,copy,mutableCopy开头的方法时,OCMock

    1.4K20发布于 2020-03-18
  • 来自专栏腾讯移动品质中心TMQ的专栏

    iOS 逻辑自动化测试实践

    在iOS手机管家的逻辑接口测试中选用通用的开源OCMock,配置和OCMock的使用参看如下连接文档:http://ocmock.org/ a、mock返回一个值; 举例:在iOS手机管家的加密相册功能中 如下使用了OCMock来mock isTouchIDSupported 接口,使得其返回设定值YES。

    3.8K10发布于 2017-07-26
  • 来自专栏AllTests软件测试

    盘点App测试会用到哪些工具

    RxJava Instrumentation AndroidJUnitRunner Espresso 4.2、iOS平台 # 公众号:AllTests软件测试 XCTest GHUnit OCUnit OCMock

    1.4K10编辑于 2022-07-26
  • 来自专栏iOS技术

    MessageMock : 优雅的模拟 Objective-C 方法

    实际上更期望有一种不需侵入源码且更快捷的方式,知名的 OCMock 正是为了解决这些问题,不过它有不支持多线程、接口怪异、重复调用、类型处理复杂等问题,笔者看了源码过后决定换一种思路,基于objc_msgSend 当使用时始终返回 nil id res = [NSObject new]; //res == nil 后语 考虑到这份代码的落地场景并不是很多,至少还需要支持 x86 机器和大于指针类型的数据处理, 才可能替代 OCMock

    1.1K20发布于 2020-08-04
  • 来自专栏TechBox

    CocoaPods之Podfile&Podfile.lock

    target 'MyApp' do pod 'GoogleAnalytics', '~> 3.1' # Has its own copy of OCMock # and has :search_paths pod 'OCMock', '~> 2.0.1' end end post_install do |installer| installer.pods_project.targets.each

    7.7K30发布于 2018-06-05
  • 来自专栏大宇笔记

    XCTest iOS Swift单元测试

    下面就是我从新花了1天时间学习路线(点开是链接地址): WWDC XCTest WWDC XCUITest GITHUB Demo OCMock [iOS单元测试系列]单元测试框架选型 --

    3.1K30发布于 2019-01-15
  • 来自专栏IOS分享

    测试 View Controllers

    Objective-C 中有个用来 mocking 的强大工具叫做 OCMock。它是一个非常成熟的项目,充分利用了 Objective-C 运行时强大的能力和灵活性。 这是个强大的技巧,OCMock 就有这样的本领。

    1K20发布于 2019-05-16
  • 来自专栏朱慕之的博客

    单元测试

    除了官方自带的,还有一些比较出名的第三方的测试框架,如:GHUnit,KiWi,OCMock,Specta等,当然本文不讨论这些第三方框架。

    2.1K20发布于 2018-08-02
  • 来自专栏工程师的分享

    iOS NSPROXY ARC填坑记

    weak-references-to-nsproxy-with-arc/ https://oomake.com/question/2426222 https://stackoverflow.com/questions/9104544/how-can-i-get-ocmock-under-arc-to-stop-nilling-an-nsproxy-subclass-set-using-a-w

    73620编辑于 2022-08-02
  • 来自专栏搜狗测试

    白盒测试体系—框架搭建篇

    常用测试框架: Java - JUnit/TestNG .Net - NUnit C++ - CPPUnit/GTest Python - pyUnit/py.test/Nose OC - OCUnit/OCMock

    2.2K20发布于 2020-05-08
  • 来自专栏服务端技术杂谈

    架构细节 | 看看 Medium 的开发团队用了哪些技术?

    对于测试,我们使用XCTest和OCMock。 Android 在Android方面,我们与当前的SDK和支持库版本保持一致。我们并没有使用任何复杂的框架,而是倾向于为重复出现的问题构建持续性的模式。

    1.8K60发布于 2018-04-17
  • 来自专栏Timhbw博客

    iOS面试中被面试官问到的问题答案(一)

    OCMock就是模拟某个方法或者属性的返回值,你可能会疑惑为什么要这样做?使用用模型生 成的模型对象,再传进去不就可以了?答案是可以的,但是有特殊的情况。 这时候,你可以使用OCMock来模拟方法B返回的值。(在不影响测试的情况下,就可以这样去模拟。)除了这些,在没有网络的情况下,也 可以通过OCMock模拟返回的数据。

    2K80发布于 2018-05-03
  • 来自专栏华仔的技术笔记

    Xcode 7 自动测试XCTestCase

    Objective-C 时代除了 Xcode 集成的 XCTest 以外,还有很多的测试相关的工具链可以使用,比如专注于提供 Mock 和 Stub 的 OCMock,使用行为驱动测试的 Kiwi 或者

    2.3K70发布于 2018-05-17
  • 来自专栏啄木鸟软件测试

    为什么我说写好测试很重要(二)

    如果需要使用 Mock 和 Stud 可以搭配 OCMock。   Excepta 是一个匹配框架,比 XCTest 的断言则更加全面一些。   没办法说哪个最好、最合理,根据项目需求选择合适的组合。

    63690发布于 2021-08-13
领券