9
3

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.

App ExtensionのUnitTestを書く

Posted at

#はじめに
App Extensionの一つであるToday ExtensionのUnitTestを書こうとしてハマったので解決策を記載します。

#App ExtensionのUnitTest
まずなにもせずにApp ExtensionのUnitTestを書こうとすると様々なエラーが出てテストコードのBuildが通りませんでした。
UnitTestではテストを実行するHostApplicationをTARGETS>General>Testingから設定しますが、そもそもプルダウンの選択肢にはApp Extensionは表示されません。
しかし以下の方法でUnitTestを実行することができました。

##1.新規UnitTestのTargetを作成する
App本体のUnitTestのTargetとは別に新規で作成してください。
その際に、新規作成Target>General>TestingのHost ApplicationをNoneに設定します。
スクリーンショット 2017-11-08 0.08.24.png

##2.UnitTestから参照するファイルのTarget MembershipにUnitTestのTargetを追加する
スクリーンショット 2017-11-09 0.43.26.png
上記画像ではTodayViewControllerをテストするUnitTestを書く場合となります。
通常ではTarget MembershipではTodayExtensionにのみチェックが付いています。
そこに新たにTodayExtensionUnitTestにもチェックをつけています。

#おわりに
以上で手順としては完了になります。
あとはAppExtension用に作成したUnitTestのTargetで通常通りにUnitTestを書いて実行できるかと思います。

最初は@testable import TodayExtensionだけ書けばいけるかな〜と思っていたのですがエラーが出てダメでした…

9
3
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
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?