こちらのノートブックのテストで説明されている内容を実際に試してみました。
テスト対象の関数を宣言します。入力された文字列の順序を逆にする関数です。
Python
def reverse(s):
return s[::-1]
unittestを用いたテスト用コードを作成します。
Python
import unittest
class TestHelpers(unittest.TestCase):
def test_reverse(self):
self.assertEqual(reverse('abc'), 'cba')
ユニットテストを実行します。
Python
r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'
テストに失敗するように故意に関数を変更します。
Python
def reverse(s):
#return s[::-1]
return "test"
ウィジェットの活用
ウィジェットを追加することで、テスト時の動作と通常時の動作を切り替えることができます。
Python
dbutils.widgets.dropdown("Mode", "Test", ["Test", "Normal"])
Python
import unittest
class TestHelpers(unittest.TestCase):
def test_reverse(self):
self.assertEqual(reverse('abc'), 'cba')
if dbutils.widgets.get("Mode") == "Test":
r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'
else:
print(reverse("desrever"))
PyTestとの連携に関しては、こちらの記事を参照ください。