11
11

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.

Xcode6でGoogle Testを使う

Last updated at Posted at 2015-04-20

TL;DR

http://bitrage.de/wp/google-test-with-xcode-6-and-c11
こっちのほうが元情報で、画像付きで分かりやすい

準備

  1. Downloads - googletest から1.7.0をダウンロード
  2. 任意のツールでzipを解凍して、gtest-1.7.0/xcode/gtest.xcodeprojを開く
  3. プロジェクトナビゲーターでgtestを選択して、gtest-frameworkBuild Settingsを開く
    • C++ Language DialectGNU++11 [-std=gnu++11]に変更
    • C++ Standard Librarylibc++(LLVM C++ standard library with C++11 support)に変更
    • OS X Deployment TargetCompiler Defaultに変更
  4. gtest-frameworkをビルドする(Cmd+B)
  5. プロジェクトナビゲーターのProductsにビルドされたフレームワークが在るので、altキーを押しながら任意のフォルダにドラッグアンドドロップする
  6. googletestを使いたいXcodeプロジェクトにテスト用のCommand Line Toolターゲットを追加する
    • OS X -> Applicationにある
    • LanguageC++
  7. テスト用ターゲットのBuild Phases -> Link Binary With Librariesに*5.*でドラッグアンドドロップしたフレームワークを追加する
    • +マーク押すか、Finderからドラッグアンドドロップ
  8. メニューバーからProduct –> Scheme –> Tests and then Product –> Scheme –> Edit Schemeを選択
  9. テスト用ターゲットを選択してRunEnvironment VariablesDYLD_FRAMEWORK_PATHというキーを追加する
    • Valueは*7.*で追加したフレームワークがあるpath
  10. テスト用フレームワークのmain.cppmain()関数の引数を変更する
    • int main(int argc, const char * argv[]) -> int main(int argc, char * argv[])
      • constを外す
      • はずさないとgtestのinitが面倒
  11. 準備完了!!!!!!!!!!!!!!!!!!!!!!!!

使ってみる

テスト対象のターゲットに下記のようなコード追加する

// calc.h
class calc {
public:
    template<class T>
    static T add(T a, T b) {
        return a + b;
    }
};

test書く

#include "gtest/gtest.h"
#include "calc.h"


TEST(calc, add) {
    EXPECT_EQ(calc::add(1, 2), 3);
    EXPECT_NE(calc::add(1, 1), 3);
}

int main(int argc, char * argv[]) {
    ::testing::InitGoogleTest(&(argc), argv);
    return RUN_ALL_TESTS();
}

雑にmain.cppに書いたけどクラスとかに対応するヘッダファイル作って、そこにテスト書いたほうがいいと思う。
テスト用のターゲットにヘッダファイル追加して、テスト書いたらOK。

終わり。

参考

11
11
1

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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?