KIF 2.0与Specta 0.2.1

时间:2014-01-03 15:01:41

标签: ios tdd automated-tests bdd kif

是否可以将KIF 2.0与Specta 0.2.1一起使用?在KIF GitHub存储库(https://github.com/kif-framework/KIF)上,他们添加了一个使用Specta的示例,但我无法使其工作,可能是因为Specta正在使用XCTest而不是SenTestKit。也许我可以使用早期版本的Specta,任何人都可以使用它吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我发现我必须在Specta的SPTXCTestCase中添加一个类别才能让KIF 2.0和Specta 0.2.1发挥得更好(尽管README在KIF 2.0中说的是这样)。我相信这确实是因为KIF不能在XCTest开箱即用,而且Specta在版本2中从OCTest切换到XCTest。

SPTXCTestCase+KIF.h

@protocol KIFTestActorDelegate;

@interface SPTXCTestCase (KIF) <KIFTestActorDelegate>

@end

SPTXCTestCase+KIF.m

#import "SPTXCTestCase+KIF.h"
#import <SenTestingKit/SenTestingKit.h>

@implementation SPTXCTestCase (KIF)

- (void)failWithException:(NSException *)exception stopTest:(BOOL)stop {
    [self recordFailureWithDescription:exception.userInfo[SenTestDescriptionKey]
                                inFile:exception.userInfo[SenTestFilenameKey]
                                atLine:[exception.userInfo[SenTestLineNumberKey] intValue]
                              expected:NO];
}

- (void)failWithExceptions:(NSArray *)exceptions stopTest:(BOOL)stop {
    for (NSException *exception in exceptions) {
        [self failWithException:exception stopTest:stop];
}

@end

答案 1 :(得分:0)

修正案,似乎那些钥匙不存在

- (void)failWithException:(NSException *)exception stopTest:(BOOL)stop
{
  self.continueAfterFailure = !stop;
  [self recordFailureWithDescription:exception.description
                              inFile:exception.userInfo[@"SenTestFilenameKey"]
                              atLine:[exception.userInfo[@"SenTestLineNumberKey"] integerValue]
                            expected:NO];
}