内のすべてのユニットテスト前に呼び出されていませんこれは、クラスSchool
をテストする私のコードです:セットアップ機能はPython
class SchoolTest(unittest.TestCase):
def setUp(self):
# assertCountEqual is py3, py2 only knowns assetItemsEqual
if not hasattr(self, 'assertCountEqual'):
self.assertCountEqual = self.assertItemsEqual
self.school = School("Haleakala Hippy School")
def test_an_empty_school(self):
for n in range(1, 9):
self.assertCountEqual(set(), self.school.grade(n))
def test_add_student(self):
self.school.add("Aimee", 2)
self.assertCountEqual(("Aimee",), self.school.grade(2))
私はすべてのテストの前に新しいSchool
オブジェクトを作成します。私がテストを実行すると、私は次のエラーで終わる:
def test_an_empty_school(self):
for n in range(1, 9):
self.assertCountEqual(set(), self.school.grade(n))
AssertionError: Element counts were not equal:
First has 0, Second has 1: 'Aimee'
それは最初のテストが失敗した理由です、第二のテストが最初に呼び出され、新しいオブジェクトが作成されていないことを意味します。
私がコメントしてテストを実行すると、どのコメントに関係なくテストが実行されます。
私は1つの基本的なものが欠けているように感じます。
私は間違っていますか?念のため
、School
クラス:
class School():
_db = dict()
def __init__(self, name):
self.name = name
@property
def db(self):
return self._db
def add(self, student, grade):
if grade not in self._db:
self._db[grade] = set()
self._db[grade].add(student)
def grade(self, grade):
if grade not in self._db:
return set()
return self._db[grade]
def sort(self):
sorted_list = []
for grade in self._db:
sorted_list.append((grade, tuple(self._db[grade])))
return sorted_list
初期化することにより、インスタンス属性_dbにする必要がありますか? –
'self.school'が実際に作成されました – user3159253
どのようにテストを実行していますか? _exact_の出力をあなたの質問に貼り付けましたか? – snakecharmerb