LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

早期にバグを発見!Swiftの単体テストの方法【TUBオンライン】

Last updated at Posted at 2020-07-18

本イベントの流れ

  • このイベントで得られること
  • テストとは
  • テストの目的
  • 単体テストとは
  • ハンズオン
  • 質疑応答
  • アンケート回答

このイベントで得られること

  • テストの目的がわかる
  • 簡単なテストコードがかけるようになる

テストとは

  • プログラムから仕様にない動きやバグを見つけ出す作業
  • 要件に沿っているかを確認すること
    • 品質を担保
  • バグを修正する作業のことをデバッグ

テストの目的

テスト作業は、システム開発・スマホアプリ開発において、プロダクトの品質担保のために絶対に省くことのできない必須の作業項目です。
ユーザーは、正確に、早く、そして、一貫してアプリが動くことを期待しています。つまり、ユーザーが何らかの成果を出す上で貢献する機能を全てテストする必要があるます。

単体テストとは

ユニットテストとも呼ばれ、プログラムを構成する比較的小さな単位が個々の機能を正しく果たせているかを検証するテストです。

単体テストの書き方

テストの記載場所

プロジェクト作成時にinclude Unit Testsのチェックをオンにしてプロジェクトを作成することで
単体テスト用のフォルダとファイルを自動的に作成してくれます
スクリーンショット 2020-07-18 13.39.34.png
フォルダ名は作成したプロジェクト名+Testsというようになります
スクリーンショット 2020-07-18 13.38.57.png

テストでの確認観点

単体テストでは基本的に想定した値を入れると想定した結果を得られることを確認します。
なので想定した値と実際の値を比較し結果どうなるのかを確認する形を取ることが多いです。

テストの書き方

前述したとおりXcode上でテストを記載するための関数が準備されているのでよく使用するものをいくつか紹介していきます。

関数 内容
XCTAssertNil(値) 値がnilであること
XCTAssertNotNil(値) 値がnilでないこと
XCTAssertTrue(値) 値がtrueで有ること
XCTAssertFalse(値) 値がfalseで有ること
XCTAssertEqualObjects(オブジェクト1, オブジェクト2) オブジェクト1とオブジェクト2が同じオブジェクトであること
XCTAssertNotEqualObjects(オブジェクト1, オブジェクト2) オブジェクト1とオブジェクト2が異なるオブジェクトであること
XCTAssertEqual(値1, 値2) 値1と値2が同じ値であること
XCTAssertNotEqual(値1, 値2) 値1と値2が異なる値であること

ハンズオン

今回はハンズオン用にじゃんけんアプリを作成しました!
このじゃんけんアプリを使って勝ち負けの判定部分のテストをみなさんと書いていこうと思います!!
https://github.com/mht-ryo-chiba/TUB_0718
スクリーンショット 2020-07-18 14.00.11.png

本イベントのアンケートにご協力お願いします!

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