@staticmethod
テストケースを書くために、いくつかの関数でデコレータを使用しています。クラス全体を初期化することなく、クラス内のいくつかのメソッドをテストしたかっただけなので、これは完璧な方法だと思いました。
しかし、テストコードは正常に実行されますが、実際のコードではエラーが発生します。ほとんどの関数にはself
パラメーターが渡されているため、@staticmethod
デコレーターは失敗します。
を使用せずにメソッドをテストする方法はあり@staticmethod
ますか? そうでない場合、本番コードをあまり変更せずにこれを回避する完璧な方法は何でしょうか?
Class DBMethod():
@staticmethod
def getVN(self, tN):
curs = self.connection.cursor()
curs.execute ('SELECT * FROM ' + tN)
vL = list(map(lambda x: x[0], curs.description))[0]
return vL
そしてテストクラス
Class DBTestClass(unittest.TestCase):
def test_getVN(self):
self.assertEqual(DBMethod.getVN(self, 'tbN'), 'VER')