1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Quick/NimbleをObjective-Cのテストコードで使う

Posted at

はまったのでメモ。

必要なヘッダーが不足しています

サンプルコードを見ると、以下のようになっている。

// Objective-C

#import <Quick/Quick.h>
#import <Nimble/Nimble.h>

QuickSpecBegin(DolphinSpec)

it(@"is friendly", ^{
  expect(@([[Dolphin new] isFriendly])).to(beTruthy());
});

it(@"is smart", ^{
  expect(@([[Dolphin new] isSmart])).to(beTruthy());
});

QuickSpecEnd

これをまねして、ごくシンプルに書いてみよう。

#import <Quick/Quick.h>
#import <Nimble/Nimble.h>

QuickSpecBegin(SampleSpec)

describe(@"Sample", ^{
    it(@"比較", ^{
        expect(@2).to(equal(@1));  // ←ここでコンパイルエラー
    });
});

QuickSpecEnd

コンパイルできないじゃないですか。

SampleSpec.m:16:20: Definition of 'NMBExpectation' must be imported from module 'Nimble.Swift' before it is required

指示された通りに、ヘッダーを追加しましょう。

  #import <Quick/Quick.h>
+ #import <Nimble/Nimble-Swift.h>
  #import <Nimble/Nimble.h>

無事にコンパイルが通りました。
(Assertionは失敗するコードです。)

XCodeのバージョンとQuick/Nimbleのバージョン

上述のエラーを考えているときに、このissueを発見。

[https://github.com/Quick/Quick/issues/269]

Swift1.1の環境(=XCode 6.2)では、Quick v0.2.xとNimble v0.3.xを使ってね、というはなし。

検証してみたが、XCode6.2(6C131e)において、
Quick v0.3.1と_Nimble v0.3.1_で動作した。
(Quickのバージョンは、検証時のCocoaPods 最新版)

issueで取り上げられているコンパイルエラーは、Nimbleに関してなので、Quickは最新でも問題ないようである。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?