ios - Kiwi 规范中的辅助函数

标签 ios objective-c kiwi

我有一些重复的规范,我想干掉。通用功能不适合移动到 beforeEach block 中。本质上,它是对象创建,12 个对象中的每一个对象有 4 行,我想将这 4 行变成一个函数调用。

我可以在 Kiwi 规范中的什么地方放置辅助函数?

在 RSpec 中,我可以将 def 放在 spec block 之间,但这在这里似乎是不可能的。我什至尝试跳过 SPEC_END 宏并自己添加该内容,这样我就可以在 SPEC_BEGIN 的@implementation 中添加函数,但这似乎也不起作用。

更正...我可以通过手动编写 SPEC_END 宏来管理某种工作。我最后 } 放错了地方。但是,它仍然失败,因为该方法不在 @interface 中。

最佳答案

在 SPEC_BEGIN 之后将您的辅助函数创建为一个 block :

SPEC_BEGIN(MySpec) 

NSDate* (^dateFromString) (NSString *) = ^NSDate* (NSString *dateString) {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
    [dateFormatter setDateFormat:@"MM-dd-yyyy"];
    return [dateFormatter dateFromString:dateString];
};


describe(@"something", ^{
    NSDate *checkDate = dateFromString(@"12-01-2005");

...
});

SPEC_END

关于ios - Kiwi 规范中的辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198428/

相关文章:

ios - 如何验证 kiwi bdd 测试用例中的 didReceiveMemoryWarning 函数?

ios - 在 Kiwi (iOS) 中 mock 代表的期望

ios - 如何获得一张高质量图像,包括 ScrollView 上的 subview 图像

ios - IOS 7.0 中 CFStream Socket 发送数据包不完整

iphone - 如何实现全局静态类

ios - 如何将 uitextfield 字符范围限制为 10 位

unit-testing - 对于 Kiwi 模拟缺少验证方法是否有解决方法?

ios - IQkeyboardmanager 订单问题

ios - 无法在 Swift 项目中调用 'getControlPointAtIndex'

ios - 在推送到另一个 viewController 时加载