1

ある関数で作成され、他の関数に渡されるデータ構造があります。私はそれらすべての機能をユニットテストしようとしています。

各関数でそのデータ構造(環境)を再作成する必要がありますか?グローバル変数を使用してみましたが、どのテストケースが他のテストケースよりも先に実行されるかを保証できません。

私は多く__init__unittest.TestCase頭痛なしにオーバーライドすることはできないことを知っています。

他にどのようにそれを達成できますか?パラメータを渡すか、それとも何らかの方法でパラメータを変数にして、競合状態を回避しますか?

4

1 に答える 1

1

各テストの前にデータ構造を再定義したくないようです。テストがデータを変更しない限り、次のデータ構造の定義に問題はないと思います__init__

import unittest

class Test(unittest.TestCase):
    def __init__(self, methodName = 'runTest'):
        unittest.TestCase.__init__(self, methodName)
        self.data = range(5)

    def test_getitem(self):
        self.assertEqual(self.data[1],1)

    def test_reversed(self):
        self.assertEqual(list(reversed(self.data)),[4,3,2,1,0])

if __name__ == '__main__':
    import sys
    sys.argv.insert(1,'--verbose')
    unittest.main(argv = sys.argv)

収量

% test.py
test_getitem (__main__.Test) ... ok
test_reversed (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
于 2012-11-23T02:22:21.553 に答える