问题标签 [ocmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1764 浏览

iphone - iphone OCMockObject 和单元测试从 NSURLConnection 继承的类

我想对继承自 NSURLConnection 的类的自定义 init 方法进行单元测试 - 如果我的可测试类的 init 调用,我将如何执行此操作NSURLConnection's initWithRequest

我正在使用 OCMock,通常,我可以模拟测试类中包含的对象。对于这种继承场景,最好的方法是什么?

我的类是这样实现的:

这是我得到的错误:

OCMockObject [NSURLRequest]:调用了意外的方法:_CFURLRequest

0 投票
3 回答
460 浏览

iphone - 从 SenTestCase 派生类调用 NSInvocation 不可行?

NSInvocation 类不应该通过单元测试(对于 iPhone)来调用吗?

我的意图是通用调用一个类的方法,由于该方法有两个以上的参数,我不能使用[myTestClass performSelector:withObject:withObject]

相反,我正在尝试使用 NSInvocation 但是一旦我尝试从 NSInvocation 类实例化,我就会收到构建错误:

2009-12-31 11:12:16.380 otest[2562:903] ******* 关于调用 NSInvocation /Developer/Tools/RunPlatformUnitTests.include:第 415 行:2562 总线错误
“${THIN_TEST_RIG}”“$ {OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}" /Developer/Tools/RunPlatformUnitTests.include:451: 错误:测试台 '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk/Developer/usr/bin /otest' 异常退出,代码为 138(它可能已崩溃)。

我正在测试的班级:

我的单元测试:

在运行时调用具有超过 2 个参数的方法的方法是什么?我是否必须更改方法的签名,使其只有 2 个参数?这是单元测试框架的限制吗?

0 投票
1 回答
4265 浏览

iphone - OCMock 对带有参数的方法进行 OCMock 并返回一个值

我有一个依赖于 NSUserDefaults 的类,我正在尝试对其进行单元测试,并且我将 NSUserDefaults 作为模拟提供到我的测试类中。运行测试时,我收到错误:

OCMockObject [NSUserDefaults]:调用了意外的方法:dictionaryForKey:@"response"

我正在尝试模拟 NSUserDefaults 类的这个实例方法:

使用调用格式:

告诉模拟它需要接受 dictionaryForKey 方法。但不知何故,这没有被记录下来,或者不是告诉模拟期望的正确事情,因为错误告诉我模拟永远不知道期望'dictionaryForKey'调用。

我调用存根 andReturn 的方式似乎与这个问题非常相似,但在那个问题中,发帖人说他们得到了一个返回值。我的测试用例:

我的课:

有什么建议么?

0 投票
2 回答
2433 浏览

objective-c - 使用 OCMock 和 Core Data 测试控制器方法

我只是在掌握 TDD 和 mocking 的概念,并且在如何正确处理方面遇到了问题。我有一张下拉表格,让用户创建一个新的核心数据对象并将其保存到数据存储中。我不确定我是否采用了最好的方法来测试它。

我正在尝试编写两种测试方法来测试这一点:一种测试托管对象无法保存的场景,另一种测试成功保存的场景。

以下是我知道我遇到的问题,但不知道如何解决:

  1. 我不确定如何在测试方面处理托管对象上下文。我应该调出整个核心数据堆栈还是只创建一个模拟NSManagedObjectContext
  2. 仅将文本字段值设置为触发 if 语句的方式的想法似乎是错误的。理想情况下,我认为我应该删除该save:方法并返回“是”或“否”,但鉴于问题 1,我不确定这一切的核心数据方面。

我认为我走在正确的轨道上,但我可以就如何解决我的问题使用第二种意见,并让我走上测试代码片段的正确道路。

0 投票
1 回答
1157 浏览

xcode - OCMock 测试无法构建:Foundation/Foundation.h:没有这样的文件或目录

我是 Xcode 初学者,在编译 OCMock 测试时遇到了一些问题。我在“组和文件”中添加了 OCMock.framework,然后从单元测试目标中添加了一个非常基本的 OCMock 测试,基本上用于 Canary 测试。

当我编译 OCMockTests.m 文件时,系统返回大约 38 个错误,指出 OCMock.Framework 文件中的所有导入头文件都不存在,顶部出现“Foundation/Foundation.h:没有这样的文件或目录”。但是当我编译 OCMock.Framework 时,一切都会成功。我尝试用 NSObject.h 替换 Foundation.h,但系统甚至无法找到它。

我认为这是一些链接器错误......系统可能无法获得 Sentest.Framework 的位置。顺便说一句,我已经使用正确的(?)Sentest 框架路径(参数是“-Sentest All”)更新了可执行信息 - 环境变量 - DYLD_FALLBACK_FRAMEWORK_PATH,即 IphoneOS 文件夹。

需要您的建议...非常感谢。~ 萨彦

0 投票
4 回答
2057 浏览

objective-c - 如何在objective-C中使用OCMock的mock和verify方法?

我的问题是我收到一个错误:

OCMckObject [NSNumberFormatter]:未调用预期方法:setAllowsFloats:YES

我写了以下代码:

0 投票
6 回答
16655 浏览

objective-c - 如何使用 OCMock 来验证某个方法从未被调用?

在我的日常工作中,我被Mockito 的never()验证宠坏了,它可以确认永远不会调用模拟方法。

有什么方法可以使用 Objective-C 和 OCMock 来完成同样的事情吗?我一直在使用下面的代码,它可以工作,但感觉就像一个黑客。我希望有更好的方法...

0 投票
1 回答
407 浏览

ocmock - OCmock 和 MKReverseGeocoder

我想测试一种使用反向地理编码的方法。我想做的是:

  • 将地理编码器设置为我的控制器的属性

  • 在 init 方法中创建地理编码器

  • 在我要测试的方法中调用地理编码器

  • 在我的测试中用模拟替换地理编码器

问题是 MKReverseGeocoder 坐标属性是只读的,我只能在构造函数方法中设置它:

当然,坐标仅在我想测试的方法中可用..

有谁知道我如何模拟 MKReverseGeocoder 类?

在此先感谢文森特。

0 投票
2 回答
954 浏览

iphone - iOS 4 上的 OCMock

我在使用 iOS 4 运行 OCMock 时遇到了麻烦。

我已经阅读了一个可能的解决方案来构建库并安装 libOCMock.a,但老实说,我不知道如何。任何帮助都会很有用

0 投票
3 回答
3528 浏览

iphone - iPhone OCMock (iOS4, XCode 3.2.3)

我有最新版本的OCMock (1.55) 和 XCode 3.2.3。

我在我的项目中创建了一个测试包目标。在我的测试中使用 OCMock 的最佳方式是什么? 当我将 OCMock.framework 添加到测试包时,会出现此构建错误: