Xcode 5 환경에서 Kiwi 가져오기

6930 단어 XcodekiwiiOS

CocoaPods 가져오기

$ gem install cocoapods
$ pod setup

테스트 대상 추가


하면, 만약, 만약...

없으면 왼쪽 아래에 있는 +를 눌러 추가합니다.

Podfile 만들기


프로젝트 바로 아래에 Podfile을 만듭니다.
Podfile
# Podfile
platform :ios, '7.0'
target :KiwiSampleTests, :exclusive => true do
    pod 'Kiwi/XCTest'
end

kiwi 설치


Xcode 종료 후
$ pod install
Analyzing dependencies
Downloading dependencies
Installing Kiwi (2.2.4)
Generating Pods project
Integrating client project

[!] From now on use `KiwiSample.xcworkspace`.
프로젝트 이름입니다.xcworkspace가 만들어졌으니 그곳을 열어라.

생성 테스트


KiwiSampleTest 폴더 아래에 있는 SampleSpecm이라는 파일을 만들다.
SampleSpec.m
#import "Kiwi.h"

SPEC_BEGIN(MathSpec)

describe(@"Math", ^{
    it(@"is pretty cool", ^{
        NSUInteger a = 16;
        NSUInteger b = 26;
        [[theValue(a + b) should] equal:theValue(42)];
    });
});

SPEC_END
cmd+U에서 테스트를 수행합니다.
왼쪽 버튼의 소스 코드, SPEC-BEGIN 단위로 수행할 수 있습니다.
(it와 describe 단위로 실행할 수 없는 경우 좋지 않음)

비동기 테스트

SPEC_BEGIN(AsyncTest)
context(@"Fetching service data", ^{
    it(@"should receive data within one second", ^{
        NSURL *url = [NSURL URLWithString:@"http://mixi.jp"];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        __block NSString *fetchedData = nil;
        NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    return;
                                                }
                                                fetchedData = [[NSString alloc] initWithData:data encoding:NSJapaneseEUCStringEncoding];  //mixiはEUC-JP
                                            }];
        [task resume];

        [[expectFutureValue(fetchedData) shouldEventually] beNonNil];  //ここで最長1秒待ってから評価する(デフォルト)
    });  
});

SPEC_END

샘플 코드

좋은 웹페이지 즐겨찾기