Python中文
首页
教程
问答
标签
搜索
登录
注册
在嵌套函数上运行单元测试
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我来自Java世界,在那里可以隐藏变量和函数,然后使用反射对它们运行单元测试。我使用嵌套函数来隐藏类的实现细节,以便只有公共API可见。我试图针对这些嵌套函数编写单元测试,以确保在开发时不会破坏它们。我尝试调用其中一个嵌套函数,如:</p> <pre><code>def outer(): def inner(): pass outer.inner() </code></pre> <p>这将导致错误消息:</p> <blockquote> <p>AttributeError: 'function' object has no attribute 'inner'</p> </blockquote> <p>有没有办法针对这些嵌套函数编写单元测试?如果没有,是否有方法触发函数名的名称munging,就像在类变量前面加上前缀一样?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我认为没有机会从外部命名空间访问inner()。</p> <p>然而,在我看来,保持inner()嵌套的事实意味着唯一真正重要的“契约”是outer()的契约。inner()是实现的一部分,您不应该希望测试实现。 如果您真的想测试inner(),可以使用包含inner()所有功能的数据对outer()进行广泛的测试。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django restfram生成PDF
4 回答
无法使用Django Rest框架发送压缩的gzip数据
7 回答
无法使用Django rest框架进行身份验证(请求用户=匿名用户)
9 回答
无法使用Django、Python和JavaScrip触发onclick函数
8 回答
无法使用Django.views.generic.View保存表单
4 回答
无法使用Django(python 2.7,OS X 10.11.1)
9 回答
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
3 回答
无法使用Django\u mssql\u后端迁移到外部hos
7 回答
无法使用Django&Python3.4连接到MySql
8 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
6 回答
无法使用Django1.7和mongodb登录管理站点
6 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
10 回答
无法使用Djangockedi验证CBV中的字段
1 回答
无法使用Djangocketditor上载图像(错误400)
1 回答
无法使用Djangocron进行函数调用
10 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
1 回答