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

[Swift]UITableViewのセルの入れ替えが簡単に実装できるライブラリ「SwiftReorder」

1 はじめに2 準備3 実装4 さいごに はじめに こんにちは、nukkyです。 今回は、UITableViewでセルを入れ替えたい際に、ドラッグ&ドロップ操作を簡単に実装できるライブラリ「S ...

【Flutter】背景ぼかしなど簡単な画像操作をImageFilteredで行う

1 はじめに2 準備3 実装3.1 ぼかし(ブラー)3.2 マトリックス3.3 BackdropFilterとの違い4 さいごに5 おすすめ書籍 はじめに 背景のぼかしや、画像のローテートなど、簡単に ...

[初心者向け]Xcodeの使い方(よく使うショートカットキーとエディタ)

1 はじめに1.1 前提条件2 ショートカットキー2.1 コメントアウト2.2 インデント2.3 ファイル内検索2.4 プロジェクト内検索2.5 クリーン2.6 ビルド2.7 ラン3 エディタ3.1 ...

【SwiftUI】ドラッグ&ドロップでアプリ間の文字列の共有

1 はじめに2 ドラッグ&ドロップの実装3 ドラッグ側の実装4 ドロップ側の実装5 さいごに6 おすすめ書籍 はじめに こんにちはsuzukiです。今回はドラッグ&ドロップを利用し ...

Go言語

GoフレームワークGinでミドルウェアを使ってログインAPIを実装

1 はじめに2 ログインAPIの作成3 ログインのセッション管理4 ミドルウェア4.1 gin.Default()4.2 Logger4.3 Recovery4.4 sessions5 独自ミドルウェ ...

フォロー

blog-page_side_responsive

2021年10月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

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