PyCharm IDEでは、クラスが存在するのと同じモジュールで単体テストを作成することが推奨されます。開発中にすべてのモジュールが自動的にテストされるというアイデアは気に入っていますが、気になるのは、これらの単体テストにのみ使用される追加のインポートがあることです。私は一緒に暮らすことができますがimport unittest
、考慮してください:
from lxml import etree
class Foobar(object):
def __init__(self):
schema_root = etree.parse("schema/myschema.xsd")
schema = etree.XMLSchema(schema_root)
self.parser = etree.XMLParser(schema=schema)
def valid(self, filename):
try:
etree.parse(filename, self.parser)
return True
except etree.XMLSyntaxError:
return False
import unittest
from io import StringIO
class _FoobarTest(unittest.TestCase):
def test_empty_object_is_valid(self):
foobar = Foobar()
self.assertTrue(foobar.valid(StringIO("<object />")))
私は代わりにこのようにすることを考えました:
class _FoobarTest(unittest.TestCase):
from io import StringIO as StringIO_
def test_empty_object_is_valid(self):
foobar = Foobar()
self.assertTrue(foobar.valid(self.StringIO_("<object />")))
しかし、それは私にはあまり自然に感じられません。Python はベスト プラクティスを重視する言語であるため、これについて何らかの公式声明はありますか?これに関する PEP ドキュメントには何も見つかりませんでした。そのため、同じモジュールで単体テストを行うのが良い考えなのかどうか疑問に思いました。