PyScripter では UnitTest を作成するとき、対象となるモジュールからテストの雛形を自動で作成してくれる。
方法
UnitTest を作成したいモジュールを開き、メニューより Tools > Unit Test Wizard... を選択する。
テスト対象のメソッドを選択するダイアログが表示されるので、必要なものをチェックする。
例えば、上記は HtmlTable.py ファイルの HtmlTable クラスのメソッドから UnitTest を作成しようとしている。必要なメソッドを選択した後、 OK ボタンを押すと次のようなコードが自動的に生成された。
#This file was originally generated by PyScripter's unitest wizard import unittest import HtmlTable class TestHtmlTable(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testsetCell(self): pass def testtoHtml(self): pass if __name__ == '__main__': unittest.main()
unittest.TestCase のサブクラスとしてテスト用のクラス TestHTmlTablle が作成され、中にテスト対象のメソッドに対応したテスト用の空のメソッドが作成されている。 setUp, tearDown メソッドはテストの前処理・後処理で、後二つは先ほど選択したメソッドに対応したもの。
ファイルの保存
まず最初に、自動で作成されたテスト用のモジュールをテスト対象と同じディレクトリに保存すること。これをしないでテストを実行しようとすると、次のようなエラーダイアログが表示されてしまう。
exceptions.ImportError: No module named HtmlTable
テスト対象のモジュール名
次に、テスト用のメソッドの中でテスト対象のクラスを利用するには、
モジュールの名前.テスト対象のクラス
というように、必ず「モジュールの名前.」を付けること。これを忘れてテストを実行すると、赤い文字で次のように表示される。
TypeError: 'module' object is not callable
はじめこんな初歩的なミスに全然気がつかず悩んでしまった。 ^^;
0コメント:
コメントを投稿