- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序,为此我使用 Objective Resource 创建本地对象以反射(reflect)远程响应。
特定的模型类有一个抽象类的子类,为它们提供各种附加功能,最重要的是序列化、写入磁盘和从磁盘加载的能力,不管它的具体属性是什么具体模型对象。
superclass.m
-(BOOL)saveToDisk{
...serializes and encodes all properties to disk
...return success
}
subclass.h : superclass
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSArray* friends;
...etc
然后我会调用
instanceOfSubclass.name = "joe"
NSLog(@"save status = %d",[instanceOfSubclass saveToDisk]);
我是 BDD 和测试驱动开发的新手。我如何使用 kiwi 创建一个模拟对象来抽象地测试这个功能,因为我在很多项目中使用这个框架。
具体来说,我想构建测试以确保具有各种类型属性的子类可以保存、加载、删除和覆盖。
我的理解是,这是 stub 和模拟的用武之地,但我似乎无法弄清楚如何模拟属性。我是否必须使用这些属性创建一个实际的类?
最佳答案
属性是幕后的方法,所以:
我设法结合 @aopsfan
提到的 +mock
方法,然后使用 -stub:andReturn:
我猜到实现属性的方法的名称了吗?这个例子有效,模拟了 TCConnection (来自 Twilio iOS SDK ):
// Instantiates a mocked object:
id fake_connection = [TCConnection mock];
// Creates a faked property accessor:
[fake_connection stub:@selector(parameters)
andReturn:@{@"From": @"fake-caller"}];
// I could now call my TCDeviceDelegate 's
// -device:didReceiveIncomingConnection:
[myActualObject device:myActualObject.device
didReceiveIncomingConnection:fake_connection];
// Check some results on the object:
[[myActualObject.connection should] equal:fake_connection];
这个模式特定的例子可能可以推广到其他情况。调用 -stub
(不带 andReturn:
)参数可以使无法在模拟夹具中调用的方法静音。
关于iphone - iOS 使用 Kiwi 测试具有属性的模拟子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845021/
是否可以让 kiwi-tcms 测试用例在远程服务器上启动可执行文件以执行测试用例,如果可以,该怎么做? 最佳答案 简短的回答 - 不! 长答案: 您正在寻找的是某种测试运行程序或 CI 系统 - 将
我正在寻找一种方法来测试嵌套对象的属性。本质上,我有一个规范将验证我们从外部服务返回的结果。由于我不想为要测试的每个示例对服务进行无数次调用,因此在规范的开头发出一次请求,然后我们使用一组期望来验证响
我在我的规范文件中的 BEGIN_SPEC END_SPEC block 中定义了一些辅助 block ,我经常重复使用这些 block 。例如。断言某个对话框出现: void (^expectOkA
我有一些重复的规范,我想干掉。通用功能不适合移动到 beforeEach block 中。本质上,它是对象创建,12 个对象中的每一个对象有 4 行,我想将这 4 行变成一个函数调用。 我可以在 Ki
问题描述: 我已按照此网站上介绍的分步进行操作:https://kiwitcms.readthedocs.io/en/latest/installing_docker.html 运行docker-co
有没有一种方法可以强制在Kiwi测试中失败,即等同于XCTFail()。 我可以写类似 [@"" should] beNil] 那将永远失败,但我认为Kiwi必须对开发人员融入框架的意图更具表达力。
我从 kivy 开始在教程中玩,我在 Pong 教程的最后,想根据分数添加“获胜者”标签。 为了做到这一点,我设计了一个获胜者标签: : Label: font_size: 2
我想使用 XML-RPC 将我的 iPhone 应用程序的测试结果发布到我的 TestLink。 我用 Kiwi在我的项目中,现在我想得到测试的结果。我可以知道我的测试用例上的条件是否通过或失败? 最
我浏览了各种类模拟示例,如下所示: https://groups.google.com/forum/#!topic/kiwi-bdd/hrR2Om3Hv3I https://gist.github.c
我一直在寻找使用 PyGTK 的适用于 Python 的良好 MVC 框架。我看过 Kiwi但发现它有点欠缺,尤其是在使用 Gazpacho Glade 替代品时。 还有其他不错的桌面 Python
我正在努力找出在后台线程中测试与 Core Data 交互的最佳方法。我有以下类方法: + (void)fetchSomeJSON { // Download some json then p
这link演示如何使用 Kiwi 捕获模拟对象的参数。 有没有办法捕获静态方法调用的参数?在我看来,这只适用于实例方法。 最佳答案 考虑到相同的 message dispatching mechani
我需要以下方面的帮助:我正在为具有以下结构的客户端 API 编写一些 BDD 测试: @protocol MyAPIClientDelegate -(void)myCallbackMethod:
我有一个包含 3 个项目的工作区: 我的应用 常见 pod Common是MyApp依赖的一个公共(public)库。我想设置 CocoaPods 和 Kiwi 以在这个项目中正常工作。我该怎么做?
我非常偏爱高度可预测的 Arrange Act Assert format用于单元测试。 因为 Kiwi 没有针对模拟的显式验证语句,所以它强制采用不同的模式,例如: // Arrange Thing
出于某种原因,我的测试每次都通过了。即使我添加 fail(@"failed"); Xcode 仍然显示“测试成功” 有什么想法吗? 这是我的规范的样子 #import "SDRViewControll
我正在尝试 JASidePanels使用 Kiwi,并出现以下错误: failed: 'Root side panel controller, wants to show left panel, sh
我正在研究用于测试的 kiwi 框架 myStack.m - (id) init { if (self = [super init]) { _data = [[NSMutabl
我对这段代码有疑问,它在 Kiwiirc 中除了 Firefox 之外的所有地方都运行良好。 当我点击粗体、斜体或下划线时,它只是关闭弹出框,并没有设置它们中的任何一个。它不会在任何其他浏览器中执行此
我有一个应用程序,为此我使用 Objective Resource 创建本地对象以反射(reflect)远程响应。 特定的模型类有一个抽象类的子类,为它们提供各种附加功能,最重要的是序列化、写入磁盘和
我是一名优秀的程序员,十分优秀!