Django の ユニットテストの assertEqual の引数の first, second は実際は expected, actual

Django Python
2024-03-28 09:41 (7週間前) ytyng

Django のユニットテストの assertEqual メソッドを見てみると、

def assertEqual(self, first, second, msg=None):
    """Fail if the two objects are unequal as determined by the '=='
       operator.
    """
    assertion_func = self._getAssertEqualityFunc(first, second)
    assertion_func(first, second, msg=msg)

第一引数は first, 第二引数が second と命名されており、それぞれの変数に用途の違いは無いように見える。

ただし、下記のようなコードを書いて

from django.test import TestCase


class AssertTest(TestCase):
    def test_assert_equal(self):
        self.assertEqual(
            'expected',
            'actual'
        )

実際にテストが失敗すると、結果に

Failure
Expected :'expected'
Actual   :'actual'

と出力されるので、第一引数が Expected, 第二引数が Actual だと思うべきです。

そのため、ユニットテストにハードコーディングする値は Expected なので第一引数、 メソッド実行結果や結果の変数は Acutal なので 第二引数になる。

self.assertEqual(
    110,
    get_tax_included_price(100)
)

にもかかわらず、実際の Django のユニットテストの例を見ると逆なので、実態としてどっちでも良い。

本当は Black あたりがどっちかに決めてくれると良いと思う。

Currently unrated

Comments

Archive

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011