【发布时间】:2018-09-13 15:47:10
【问题描述】:
主要问题:单元测试类变量 (self.file_path) 是否通过给定以下类的方法成功重新分配的最有效方法是什么?
class FileHandler(object):
def __init__(self, file_path):
self.file_path = file_path # /original/path/file.csv
def reassign_path(new_path):
self.file_path = new_path # /new/path/file.csv
self.run_long_operation(self.file_path)
我最初尝试在运行reassign_path() 后测试self.file_path 变量是否不同,但该方法需要很长时间才能完成并且大大减慢了测试速度。
次要问题:有没有办法在不运行整个方法的情况下简单地检查一个方法是否重新分配了一个类变量?有没有更好的方法来解决这个问题?
【问题讨论】:
-
理论上,您可以使用内置的
ast模块分析代码的抽象语法树来检查这一点。这不会使您的任何代码运行。 -
你可以模拟长操作
-
@JETM - 你能详细说明我如何模拟长时间操作吗?抱歉,我对模拟和单元测试还很陌生。
-
@chepner 的回答比我说的好。
标签: python python-2.7 unit-testing testing python-unittest