python - 在 Python 中,如何编写可以访问私有(private)属性而不公开它们的单元测试?

标签 python unit-testing testing tdd access-modifiers

我正在尝试改进为 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/

相关文章:

python - 带数组的傅里叶变换

python - 如何从另一个 python 脚本启动 Django 应用程序

javascript - spy 无法跟踪 Mocha 和 Sinon 的异步功能测试

c++ - 如何对矩形打包算法进行单元测试

python - 如何在 Tkinter 中更改文本光标颜色?

Python 打印时结果不一致,想知道原因是什么?

angularjs - 单元测试 AngularJS 指令,postLink D3 不更改 DOM

testing - 无法解码交易数据

javascript - TestCafe:页面对象模型 - 使用公共(public)单一引用访问所有实例化对象

javascript - Angular JS官方教程-第2步单元测试错误