【发布时间】:2016-03-03 21:51:59
【问题描述】:
我正在构建一个设备对象来轮询来自 python 中连接设备的数据,并且我正在尝试使用nose 测试对象的交互作用及其所有功能。在使用time.time() 编写时间戳时,我通常会遇到一个问题,因为每次调用函数时,结果值都是不同的,这严重破坏了一些测试,例如这个数据收集函数:
def getData(self, data):
if type(data) is not type({}):
#print "Bad Type!"
raise TypeError
else:
#print "Good Type!"
self.outD = {}
datastr = ""
for key, value in data.iteritems():
self.outD[key] = value
self.outD["timestamp"] = time.time()
self.outD["id"] = self.id
self._writeCSV()
当我测试这个函数的输出并比较生成的 CSV 文件时,它总是由于时间戳而失败。我可以通过添加测试标志在我的设备对象中将它分出来,但我想知道鼻子是否有内置的方法来处理这样的问题,其中函数的结果可以用给定值或本地函数替换来伪造time.time() 电话。这可能吗?
【问题讨论】:
标签: python unit-testing timestamp nose