Tech iOS

【Swift】Xcode13XCTestの新機能、繰り返し実行で遊んでみた。

投稿日:2021年10月6日 更新日:

はじめに

こんにちは、suzukiです。とうとうiOS15がリリースされました。開発中のアプリをデバッグするためOSのアップデートをすぐ行ったのですが、Safariのレイアウトが大きく変わりびっくりしました。
今回はiOS15と同時に正式版のリリースされたXcode13のXCTestの新機能である連続実行について触れていきたいと思います。

XCTestについて

Xcodeでデフォルトで利用できるテストツールです。unitのテストの利用によく使われます。
Xcode13では新機能がいくつかリリースノートのTestingの項目にあります。

繰り返しのテストについて

繰り返しのテストは3種類あります。
・テストの実行回数を指定して繰り返し行う
・テストが失敗するまで実行回数を指定して繰り返し行う
・テストが成功するまで実行回数を指定して繰り返し行う
単純なリトライ、失敗するが稀なテストケース、成功するのが稀なテストケース、それぞれを繰り返すことができるようになりました。

実際に使ってみる

リリースノートの説明を読んでも、あまりよくわからなかったので、実際に使ってみようと思います。
新規にプロジェクトを作成する場合はinclude Testsにチェックを入れて始めましょう。以前はデフォルトでチェックされていたのですが、新しくインストールしたせいか、デフォルトのチェック外れてました。

その他もろもろ入力しプロジェクトを作成します。下記のようにプロジェクト名+Testsというフォルダが作られているとXCTestが利用できます。。

何気に初めて正式版のXcode13でプロジェクト作成しました。アイコン関係の変更が目立ちますね。あと拡張子が表示されなくなったのがなんとなく違和感あります。

今回触っていくのは、下記のファイルです。

テストコードについて

それではテストコードを実際に書いてみましょう。
・1/319.9で成功するテストを成功するまで繰り返し
・1/9.2を6回行うまで繰り返し
・81/100を失敗するまで繰り返し

テストの設定

それではtestGetBonusを繰り返し実行してみます
スクショの▶️の箇所をctr押しながら選択しましょう。

下記のrepeatedlyを選択し

Successをチェックし最大値はひとまず999として実行

今回は501回目に成功しました。

Successのチェックを変更することで失敗・最大値までなどのテストが可能です。

さいごに

今回は繰り返し行い、成功したり失敗したりということでパチンコの確率を利用してみました。
繰り返すことで成功したりしなかったりという期待値になる単体テストはあまり考えてこなかったですが、ランダム要素のテストとかには使えるのかなと思いました。
テスト結果はしょうもないことになったため割愛します。早くコロナ明けて気兼ねなく外出できるようになるといいですね。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

page_footer_responsive




-Tech, iOS
-

執筆者:

         

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Swift】ITMS-90726で警告された際の対応

1 はじめに2 警告について3 RXTestについて4 Carthageの設定の確認5 おまけ5.1 Carthage削除6 さいごに7 おすすめ書籍 はじめに こんにちはsuzukiです。最近アプリ ...

MLKitで使えるTensorflow Liteについて調べてみた

1 はじめに2 そもそもTensorflowとは3 そしてTensorflow Liteとは4 Tensorflowの環境構築4.1 pyenv, pyenv-virtualenvをインストール4.2 ...

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

【Flutter】ボタンタップ時に展開するアニメーションがしたい!

1 はじめに2 Flowウィジェット2.1 Animation2.2 AnimationController3 実装4 さいごに5 おすすめ書籍 はじめに Flutterでボタンなどを設置するのはとて ...

swift

[Swift]PDFKitでPDFの表示

1 はじめに1.1 前提条件2 PDKitの概要3 実装3.1 PDFの表示4 さいごに はじめに こんにちは、nukkyです。 以前、PDFKitを使わないでPDFを表示する方法を書きましたが、今回 ...

フォロー

follow us in feedly

blog-page_side_responsive

2021年10月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。