我有一个不返回任何值的函数,但会更改其对象的内部状态。例如:
class A(object):
def __init__(self):
self._status = None
def doSomethingThatResultsInChangingStatus(self):
...do some computing...
self._status = newStatus
Run Code Online (Sandbox Code Playgroud)
实例_status
变量应该是私有的,所以尽管 Python 从技术上讲允许我在函数调用后检查它的状态,但我觉得我不应该这样做。我现在检查它的方法是为_status
变量设置一个 getter 函数,但这基本上与直接检查私有变量类似。测试这种功能的正确方法是什么?
直接评估_status
:
def test():
a = A()
a.doSomethingThatResultsInChangingStatus()
assert a._status == 'changed correctly'
Run Code Online (Sandbox Code Playgroud)
这就是我们使用 Python 的原因之一,对吗?不必设计像test-only-wrappers-around-private 这样愚蠢的装置。请记住,我们都是同意的成年人。Python 中的 Private 只是为了标记不适合一般客户端使用的成员,如果您不知道自己在做什么,则可能无法安全使用。
归档时间: |
|
查看次数: |
4259 次 |
最近记录: |