単体テストと TDD の利点を自分自身に納得させようとして、最新の Cocos2D プロジェクトにテストを含めることにしました。最初のボイラープレート テストを起動して実行することは問題なく動作しますが、残念ながら、この後はあまり先に進むことができませんでした。テスト リグは Cocos2D クラスごとにボークします。
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CCLayer", referenced from:
_OBJC_CLASS_$_NORControlLayer in NORControlLayer.o
"_OBJC_METACLASS_$_CCLayer", referenced from:
_OBJC_METACLASS_$_NORControlLayer in NORControlLayer.o
ld: symbol(s) not found for architecture i386
上記の例では、NORControlLayer は CCLayer のサブクラスです。明らかな解決策は、単純に CCLayer をテスト リグにリンクすることですが、これにより、クラスを追加するたびにさらに 10 倍のクラスをリンクする必要があり、スズメバチの巣ができてしまうようです。
SenTestingKit が NORControlLayer と将来の Cocos2D サブクラスを受け入れるようにするためのモック (またはその他の巧妙なトリック) を作成する方法はありますか?
PS: 実際には、すべての cocos2d-class をテストキットのターゲットとして含めるようにしましたが、100 以上の同様のエラーが発生しました...