想定値を示す引数 expected
は引数の1番目なのか、2番目なのか、まとめます。ふだんはJUnit/XCTest/PHPUnitあたりを主に使って仕事してますので、それ以外の言語はもしかしたら普通は使用しないようなフレームワークについて書いてるかもしれません...。
また、xUnit系のテスティングフレームワークだけ挙げてます。xSpec系のテスティングフレームワークは、自分はほぼつかったことないのですが、大体 expect(テスト結果).to eq 想定値
となっていそうでした。
まず調べた結果の表です。
フレームワーク | 1番目 | 2番目 | 3番目 | 備考(言語など) |
---|---|---|---|---|
JUnit | (message) | expected | actual | Java, Kotlin, ... |
XCTest | actual | expected | (message) | Swift |
PHPUnit | expected | actual | (message) | php |
chai | actual | expected | (message) | JavaScript. アサーションライブラリです |
Test::Unit | expected | actual | (message) | Ruby |
unittest | actual | expected | (message) | Python |
expected = 想定値 / actual = テスト結果の値 / message = 失敗時メッセージ
message
はオプションであることを示すために()
で囲っています。
JUnitは2番目になってますが、messageはオプションなので、実質1番目でしょうか...。
そうすると、ここに挙げたものだけをみる限りですが...ちょうど割れてる感じです😅
JUnit
Java, Kotlin など
1番目 (失敗時メッセージがある場合は2番目)
assertEquals(message, expected, actual);
https://github.com/junit-team/junit4/wiki/Assertions
※ JUnit4
XCTest
Swift
2番目 (失敗時メッセージは最後)
XCTAssertEqual(view.frame.size, expectedSize, "Unexpected frame size.")
引数名は、expression1
とexpression2
になっていて一見どっちかわからないけど、サンプルを見ると2番目に想定値をいれるのが一般的っぽい。
https://developer.apple.com/documentation/xctest/2142776-xctassertequal
PHPUnit
PHP
1番目 (失敗時メッセージは最後)
assertEquals($expected, $actual, $message);
chai
JavaScript
2番目
assert.strictEqual(actual, expected, message);
アサーションライブラリです。使ったことないですが、Mochaというテスティングフレームワークと組み合わせて使用することが多そうです。
https://www.chaijs.com/api/assert/
Test::Unit
Ruby
1番目
assert_equal expected, actual, message
unittest
Python
2番目 (失敗時メッセージは最後)
assertEqual(first, second, msg)
引数名は、first
とsecond
になっていて一見どっちかわからないけど、サンプルを見ると2番目に想定値をいれるのが一般的っぽい。
https://docs.python.org/ja/3/library/unittest.html#unittest.TestCase.assertEqual
flutter_test
Dart
2番目
expect(actual, matcher, reason: reason);
(expect()
なので...ここに挙げるか迷いましたが...最近よく使ってるので)
https://api.flutter.dev/flutter/flutter_test/expect.html