我正在尝试改进为 Python 程序编写单元测试用例的方式。我注意到在某些情况下,访问私有(private)成员以确保方法正常运行确实很有帮助。一个示例是当尝试测试一种方法的正确行为时,除了 None 之外没有预期的返回值。我知道这样做的简单和错误的方法是将私有(private)属性改为 protected 属性并直接测试它们。但是,我想找到一种不会过多暴露接口(interface)的方法。
那么我如何测试类中的私有(private)属性而不在接口(interface)中公开它们,或者,如果适用,测试这种场景的更好方法,以便适当的单元测试不一定需要访问私有(private)属性?
最佳答案
在 Python 中没有什么是私有(private)的。如果您在成员变量上使用双下划线前缀,则名称会被简单地破坏。您可以通过限定 _Class__member
形式的名称来访问它。这将访问类 Class
中的 __member
变量。
另见这个问题:Why are Python's 'private' methods not actually private?
关于python - 在 Python 中,如何编写可以访问私有(private)属性而不公开它们的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052814/