通过单元测试检查字典中的数值

时间:2015-04-21 17:42:37

标签: python unit-testing dictionary

我有一个功能

  

read_value_from_text()

从配置文件中读取参数并以此形式返回字典

{ key1 : value1, key2 : value2, ... , keyn : valuen }

值(value1 ... valuen)是表示数字的所有字符串。 我想写一个单元测试,检查所有值(value1,...,valuen)是否为“数字”(浮点数或整数)。有人可以建议一种有效的方法吗?

3 个答案:

答案 0 :(得分:2)

你可以test whether a string is a number使用:

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

is_number(x)

你可以这样做:

self.assertTrue(all(is_number(v) for v in d.itervalues()))

答案 1 :(得分:1)

def isNumeric(val):
    if isinstance(val, (int, float)):
        return True
    try:
        float(val)
    except ValueError:
        return False
    else:
        return True

样品测试:

d = {}
for v in d.itervalues():
    self.assertTrue(isNumeric(v))

嗯,说实话,它是验证器,而不是单元测试。单元测试正在检查代码行为,您正在检查数据的正确性。

答案 2 :(得分:0)

for val in my_dict.values():
    self.assertIsInstance(val, int)