私はSandi Metzのユニットテストのルールを、実際にオブジェクトの公開側に影響を与えるメッセージだけに適用しようとしており、パブリックなものをテストすることによってすべてのプライベートなものを間接的にテストしています。クラスのパブリック属性を設定する場合は、unit test __init__メソッドを使いますか?
したがって、実装のテストは避けて、いつでも変更することができます。
質問:私の__init__
メソッドが公に利用可能なインスタンス属性を設定していれば、私はそれをユニットテストしなければなりません。
initはプライベートメソッドとして扱われるべきかどうかは基本的にはわかりません(パブリックなものを設定する場合は、ユニットテストを行うべきだと思います)。
例:
MyClass(object):
def __init__(self, public_parameter_1, public_param_2)
self.public_parameter_1 = public_parameter_1
self.public_parameter_2 = public_parameter_2
pytestを使用してテスト:
def test_instance():
instance = MyClass(1, 2)
assert instance.public_parameter_1 == 1
assert instance.public_parameter_2 == 2