1. Qiita
  2. 投稿
  3. XCTest

SwiftでもPowerAssertしたい

  • 35
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

「でも」と書いてますが、他言語でPowerAssert使ったことないです。すみません。

あいにくSwift版を作っている先人はいらっしゃらないようで、それらしいプロダクトは見当たりませんでした。
そこで「欲しいものは自分で作る」の精神で、自分で作ってみることにしました。


PAssert
https://github.com/keygx/PAssert

試行錯誤と割り切りと泥臭い実装によって、ようやくそれっぽいエラーが出力できるようになりました。

screen.png

使い方

XCTAssertの代わりにPAssertを使えるようにします

  • PAssert.swiftファイルをXcodeプロジェクトのTestターゲットへコピーします。

xcode.png

  • テストコードの中でXCTAssertの代わりにPAssertを書きます。
    PAssert(値1, 比較演算子, 値2)
// Test MyCalc add()
func testCalc() {

    var calc = MyCalc()

    PAssert(calc.add(3, 4), ==, 7)
}
  • 値1と値2が比較演算子の通り評価され、trueならばテストが通り、falseならばテストが失敗し、下記のような内容が出力されます。
=== Assertion Failed =============================================
DATE: 2015-08-05 11:59:49
FILE: PAssertSampleTests.swift
LINE: 29
FUNC: testCalc()

=> PAssert(calc.add(3, 4), ==, 7)
           |               |   |
           |               |   7
           |               |
           |               false
           |
           12

エラー内容が分かりやすくなっていいかんじです。