異なる入力(デフォルトであることいくつか)で、単一の機能をテストするとき、行うには良い習慣です:Pythonユニットテスト:異なる入力を持つ単一の関数をテストする複数のテスト関数?
def test_init(self):
page = HTMLGen("test", "path\\goes\\here")
self.assertEqual(page.path, "path\\goes\\here\\index.html")
page_2 = HTMLGen("test", "path\\goes\\here", "cool_page")
self.assertEqual(page_2.path, "path\\goes\\here\\cool_page.html")
または
def test_init(self):
page = HTMLGen("test", "path\\goes\\here")
self.assertEqual(page.path, "path\\goes\\here\\index.html")
def test_init_with_filename(self):
page = HTMLGen("test", "path\\goes\\here", "cool_page")
self.assertEqual(page.path, "path\\goes\\here\\cool_page.html")
2つ目のアプローチはもっと冗長で、2つのシナリオの目的もちょっと違っています。最初のケースはブランクのinitをテストし、2番目のテストは引数の入力をテストします。 – Szabolcs
2番目のアプローチは間違いありません。あなたは2つの異なるシナリオをテストしているので、2番目のアプローチは間違いなくあなたが使うべきだと思うものです。より明示的で、行動をよりよく文書化するのに役立ちます。しかし、1つのコメント。 'test_init'もテストする動作を反映するように名前が変更されていることを確認してください。 – idjaw
https://en.wikipedia.org/wiki/Data-driven_testing https://github.com/wolever/parameterized – dm03514