LoginSignup
2
0

More than 1 year has passed since last update.

Databricksノートブックのユニットテストをやってみる

Last updated at Posted at 2022-05-19

こちらのノートブックのテストで説明されている内容を実際に試してみました。

テスト対象の関数を宣言します。入力された文字列の順序を逆にする関数です。

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'

期待した通りに動作するのでテストにパスします。
Screen Shot 2022-05-19 at 13.54.31.png

テストに失敗するように故意に関数を変更します。

Python
def reverse(s):
    #return s[::-1]
    return "test"

期待している出力ではないためテストに失敗します。
Screen Shot 2022-05-19 at 13.56.26.png

ウィジェットの活用

ウィジェットを追加することで、テスト時の動作と通常時の動作を切り替えることができます。

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"))

Screen Shot 2022-05-19 at 14.00.00.png

PyTestとの連携に関しては、こちらの記事を参照ください。

Databricks 無料トライアル

Databricks 無料トライアル

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0