質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1921閲覧

swift テスト 1つのファイルに対して1つのテストファイルを作りたい

L85A2

総合スコア60

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/05/24 06:35

編集2022/01/12 10:55

1つのswiftファイルに対して1つのテストファイルでテストを行いたいのですがうまくいきません。

ネットで記述されているswiftテストの記事は、デフォルトで作成したテストファイルを使用しているのが多く、
テストファイルを複数作成してやる方法を見つけることができませんでした。
参考になるような資料はありませんか?

UI/Unit Test Case Classを作成しました。
テストしたいクラスのインスタンス化をしようとするとエラーが出ます。
どのようにしたら改善するできるでしょうか?

swift

1import XCTest 2 3class ConnectionManagementTest: XCTestCase { 4 5 override func setUp() { 6 super.setUp() 7 8 // Put setup code here. This method is called before the invocation of each test method in the class. 9 10 // In UI tests it is usually best to stop immediately when a failure occurs. 11 continueAfterFailure = false 12 // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 13 XCUIApplication().launch() 14 15 // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 16 } 17 18 override func tearDown() { 19 // Put teardown code here. This method is called after the invocation of each test method in the class. 20 super.tearDown() 21 } 22 23 func testExample() { 24 // Use recording to get started writing UI tests. 25 // Use XCTAssert and related functions to verify your tests produce the correct results. 26 } 27 28 func test(){ 29 //ここでエラー 内容:Use of undeclared type 'ConnectionManagement' 30 let connectionManagement:ConnectionManagement 31 32     //ここでエラー 内容:Use of unresolved identifier 'ConnectionManagement 33 connectionManagement = ConnectionManagement.sharedConnectionManagement 34 } 35} 36

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/05/24 07:06

試したことと、どう「うまくいかない」のかを書いて下さい。
L85A2

2018/05/24 07:20

記述しましたお願いします。
guest

回答1

0

Swift Fileなどを追加するのと同じ要領で、UI/Unit Test Case Classを追加して下さい。

【追記】
@testable importを書いていないからでは?

投稿2018/05/24 07:05

編集2018/05/24 07:26
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

L85A2

2018/05/25 01:48

@testable import で指定するものは、テストしたいswiftファイル名ではなく新しく作ったターゲットだと思っていますが間違っているでしょうか? またもし仮にターゲットを指定することがあっている場合ターゲットとswiftファイルの紐づけをしなければならないと思いますがどのようにするとよいでしょうか?
fuzzball

2018/05/25 01:54

なぜ試してみないのでしょうか?
L85A2

2018/05/25 02:01

試した結果インスタンス化したいクラスが見えなかったからです。
fuzzball

2018/05/25 02:11

エラーが出ているならエラー内容を記述して下さい。
L85A2

2018/05/25 02:17

度々すいません エラー内容は以下の通りです No such module 'ConnectionManagement' ConnectionManagement'はテストしたいクラス名でありファイル名でもあります。
fuzzball

2018/05/25 02:20

実際にテストを実行してみましたか?
fuzzball

2018/05/25 02:23 編集

もしかして @testable import に ConnectionManagement を指定しているのでしょうか?
L85A2

2018/05/28 01:14

その通りです。
fuzzball

2018/05/28 01:19 編集

エラーメッセージの通りで、そこはモジュール名(ターゲット名)を指定します。 あなた自身も「@testable import で指定するものは、テストしたいswiftファイル名ではなく新しく作ったターゲットだと思っています」と書かれていますが。
L85A2

2018/05/28 01:24 編集

やはりターゲット名でよいのですね ターゲット名にしたらエラーが改善されました。 インスタンスを生成するために、let connectionManagement:ConnectionManagement を記述しましたが以下のようなエラーがでました。 Use of undeclared type 'ConnectionManagement'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問