Help us understand the problem. What is going on with this article?

Ambiguous use of xxxx の修正方法

More than 1 year has passed since last update.

前提

Extensionをまとめたファイルについて、Unitテストを書いていたのですが、そのうち一つのメソッドに対するテストでこれが出て対処法を見つけるまで結構時間奪われたので残します。

問題

ユニットテストを実行時に、Ambiguous use of xxxx というエラーが一部のメソッドに出てテストが失敗する。

修正方法

各クラスについて、右のパネル内にある Target Membership から Testsのチェックマークを外す!これだけ!

  • AppName
  • AppNameTest -> これ!
  • AppNameUITest

原因

Unitテストをする際は、下記を記載してテストクラスへアプリターゲットの参照を追加するのが一般的だと思います。

@testable import AppName

しかし、各クラスの Target Membership にチェックマークを入れてしまうと、上記とは別に個別の参照が作成されてしまうようです。
今回Extensionのテストということもあり、メソッド名が重複してしまい当該のエラーが出たということだと推測できます。

これデフォルトではチェックついてないのですが、テスト対象クラスだからチェックつけない!って勝手に勘違いしてましたことが原因でした。自戒です。

Capotasto
Softbankでモバイルアプリの開発のリードエンジニアをやってます。 ■リリース中のアプリ Walkcoin for iOS -> https://apple.co/2x7YgeX Walkcoin for Android -> http://bit.ly/32w2dIo
softbank
移動通信サービスの提供、携帯端末の販売、固定通信サービスの提供、インターネット接続サービスの提供
https://www.softbank.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away