Posted at

SwiftでもPowerAssertしたい

More than 3 years have passed since last update.

「でも」と書いてますが、他言語で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

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