次のようなコードを適切なオブジェクト指向の方法で設計およびテストしようとしていますか? (またはpythonicの方法?)
以下は、人の名前が長いか短いかを決定するファクトリ クラスです。
class NameLengthEvaluator(object):
def __init__(self, cutoff=10)
self.cutoff = cutoff
def evaluate(self, name):
if len(self.name) > cutoff:
return 'long'
else:
return 'short'
以下は、自分の名前の長さについて意見を持つ人のクラスです。
class Person(object):
def __init__(self, name=None, long_name_opinion=8):
self.name = name
def name_length_opinion(self):
return 'My names is ' + \
NameLengthEvaluator(long_name_opinion).evaluate(self.name)
いくつかの質問:
Person
メソッドname_length_opinion()
は単体テストに値しますか? もしそうなら、それはどのようになりますか?- 一般に、完全に外部の機能を持つクラスの単純なメソッドをテストする良い方法はありますか?
このメソッドのテストは、その実装を再記述するだけであり、誰もコードに触れていないことを確認するためにテストが存在するだけのようです。
(免責事項:コードはテストされておらず、私はpythonが初めてです)