我正在尝试以面向对象的方式设计和测试类似于以下的代码?(或者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 新手)