LoginSignup
1
0

More than 3 years have passed since last update.

単体テストフレームワークのassertEqualsの想定値は1番目なのか2番目なのかまとめ

Last updated at Posted at 2020-09-09

想定値を示す引数 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.")

引数名は、expression1expression2になっていて一見どっちかわからないけど、サンプルを見ると2番目に想定値をいれるのが一般的っぽい。
https://developer.apple.com/documentation/xctest/2142776-xctassertequal

PHPUnit

PHP

1番目 (失敗時メッセージは最後)

php
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)

引数名は、firstsecondになっていて一見どっちかわからないけど、サンプルを見ると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

1
0
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
1
0