问题标签 [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.
objective-c - 如何使用 ocmock 存根 AppDelegate 上的属性?
在我的应用委托类中,我有一个简单的属性
然后我在这里卸载所有登录视图的应用程序委托功能,这样我就可以保持我的主应用程序委托类很小(ish)
然后在登录应用程序委托上,我有一种方法可以在主导航控制器上推送视图控制器
痛苦的部分是当我在调用这个“启动”方法的视图控制器中时
当我尝试对此进行模拟时,似乎我在应用程序委托上的存根不正确
当我通过 ocunit 运行它时的错误是通常的“未调用预期的方法”
所以我的问题与我存根的方式有关-我可以做一个存根来返回登录模拟,还是我需要手动进入getter?
objective-c - NSString 类型的属性何时为 [NSNull null]
我正在解析一些 json 以返回基本字符串令牌或错误消息。
证明这一点的测试
一切都很好,直到我将它连接到一个实际的端点 - 只是发现除非我像下面这样修改回调 - 它正在调用两个回调(不是我希望的)
所以 2 部分问题
为什么我不能写一个测试来证明这一点?每当我将错误或令牌设置为 NULL 或 NSNull 时,它都可以正常工作(但生产工作需要此代码)
为什么生产代码只会在条件条件下失败
!= [NSNull null]
(但我似乎什么也得不到,但是<null>
当我在模拟器中运行它时 NSLog 值时?
请记住,SomeResult 对象上的令牌/错误属性如下所示
objective-c - OCMock 测试通过块是否正确执行
如何验证传递块是否正确执行?
我想知道 postalCode, _geocodePending 设置是否正确,但我不知道如何使用 OCMock 执行此操作。
添加代码
objective-c - 用于本地实例化和作用域变量的 OCUnit 或 OCmock 测试方法。
我是 OCUnit 和 OCMock 的新手,想了解更多关于这种测试方法的信息。
我知道 OCUnit 和 OCMock 创建存根生成模拟对象等的能力......
我有一个特殊的用例,我还不能破解。
这是我对单元测试的问题:
1) NSClassFromString(@"GKLocalPlayer") 是对foundation.h 的调用,我知道它无法存根。
2) [[UIDevice currentDevice] systemVersion] 是函数作用域的本地调用。我的方法调用另一个类(UIDevice)中的方法我想用存根覆盖他们的函数调用,以返回一个固定的答案来练习这个函数的每个路径。
如果在被测函数的范围内实例化类,则不确定是否可以模拟类。
此外,如何测试 #1 之类的 Class 方法。
重构是这里唯一的答案吗?
ios - iOS单元测试私有模拟对象?
在我的 XCode 项目中,我有:
- 控制器
- (单例)数据库控制器
databaseController 在控制器类中实例化。
如何用模拟对象替换此 databaseController 以验证控制器类的正常运行而不依赖于实际的 databaseController?
注意:
- OCUnit 用于单元测试。
- OCMock 用于创建 Mock 对象。
额外问题:如果 databaseController 不是单例怎么办?
ocmock - OCMock只有效一次,奇怪,为什么呢?还是我这边有什么问题?
我想为 TnSettings 做模拟,是的,如果通过以下方法编写代码,它可以工作,问题是我们需要为每个案例编写模拟代码,如果我们只模拟一次然后执行多个案例,那么第二个将报告异常。我使用最新的 OCMock V2.01。
我的问题是,为什么 OCMock 有这样的限制?还是我没有正确使用它?
任何想法或讨论将不胜感激,在此先感谢。
ios - OCMock 和Return 基于同一个mock 实例的不同值,出乎意料的返回值。
参见#if 0...#endif,如果启用则模拟按预期工作,在调用方法preferencesGeneralUnits 时返回1,如果禁用则模拟仍然返回之前的值0,尽管我们要求他返回1。
我的问题,是 OCMock 错误吗?还是 OCMock 的预期用途?谢谢你。
对 2.0.1 和从最新源代码构建都不好。
任何想法或讨论将不胜感激,在此先感谢。
objective-c - OCMock - 是否需要调用“验证”来断言在模拟对象上调用了一个方法?
我对 OCMockObject 上的“验证”方法的作用感到困惑,是否有必要调用它来测试是否在模拟对象上调用了方法?即使在执行测试后我实际上没有调用“验证”,如果我没有完全设置要在模拟对象上调用的方法的期望,我仍然会遇到测试失败。
例如:
在测试方法中
objective-c - OCMock:检查参数的设置语法
我正在尝试设置要验证的 OCMock。
我有一个协议,TaskManagerDelegate
它包含以下方法,
像这样设置我的模拟对象后,
我像这样将对象分配给被测类,
我在我的 taskManager 上调用了一个方法,然后想验证在 TaskManagerDelegate 上调用了 addTasks 方法,并且传递给它的数组只包含一个对象。
到目前为止,我已经使用 OCMArg 类来检测是否传入了参数,但我很难理解如何检查发送的特定类型是否发送到模拟,或者发送到模拟的对象是否通过了某些测试(有一个 .count 正好是一个例子)。我来自 C# 背景,通常会使用 Moq,您可以在其中使用 lamda 函数对发送到模拟对象的参数进行特定检查。
有谁知道如何用 OCMock 做到这一点,或者如果出于某种概念上的原因它是不可能的?
谢谢,
objective-c - OCMock 无法识别被调用的选择器
我正在为使用 OCMock 的测试用例而苦苦挣扎。到目前为止,我在几个项目中使用了 OCMock,它总是按我的想法工作。我有以下方法来测试[self setNeedsDisplay]
当我设置一个名为image
.
属性的设置器image
看起来像这样。
你可以看到[self setNeedsDisplay]
在setter中被调用。但是当我运行测试时,我收到以下错误:
OCPartialMockObject[SMColorButton]: expected method was not invoked: setNeedsDisplay
看起来好像没有调用该方法。但是,如果我在 setter 方法中设置断点,它会停止并显示该行已由应用程序执行。
你能帮我吗?我不明白我做错了什么......