gpt4 book ai didi

Python:函数的单元测试不返回任何东西,但改变对象的状态

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:39 25 4
gpt4 key购买 nike

我有一个函数不返回任何值,但会更改其对象的内部状态。例如:

class A(object):
def __init__(self):
self._status = None

def doSomethingThatResultsInChangingStatus(self):
...do some computing...
self._status = newStatus

_status 实例变量应该是私有(private)的,所以尽管 Python 在技术上允许我在函数调用后检查它的状态,但我觉得我不应该那样做。我现在检查它的方法是为 _status 变量设置一个 getter 函数,但这在根本上类似于直接检查私有(private)变量。测试这种功能的正确方法是什么?

最佳答案

直接评估_status:

def test():
a = A()
a.doSomethingThatResultsInChangingStatus()
assert a._status == 'changed correctly'

这就是我们使用 Python 的原因之一吧?不必设计像 test-only-wrappers-around-private 这样愚蠢的装置。记住,we are all consenting adults here . Python 中的 Private 只是为了区分不适合一般客户端使用的成员,如果您不知道自己在做什么,则使用起来可能不安全。

关于Python:函数的单元测试不返回任何东西,但改变对象的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com