如何对不知道Python返回值的函数进行单元测试

时间:2019-03-09 14:46:55

标签: python python-3.x unit-testing mocking

我有一个返回值列表的函数。这些值是商店中的动物。

[dog, cat, horse, ...]

现在的问题是我不知道列表中的确切值。这些将有所不同。如何对该功能进行单元测试?

这是我现在拥有的,但是我不知道如何/应该检查哪些值?

From unittest import TestCase, mock
..

def test_get_in_house_animals(self, ):
    value = self.trade.get_in_house_animals()
    self.assertTrue(value)

当您不知道确切的返回值时,有人可以向我解释使用模拟数据的常用方法吗?

1 个答案:

答案 0 :(得分:0)

在单元测试环境中,您可以模拟单元中的所有依赖项。 在您的情况下数据库/存储库/ api /必须在您的环境中模拟任何实例。在单元测试中,可以针对单元/边界上下文的特定实现进行测试。在这种情况下,数据源。您可以致电

进行测试
self.trade.get_in_house_animals()

特定功能,例如hasBeenCalled('findAll')负责get_in_house_animals中的结果。

在您的情况下,模拟httpClient并断言您的api设置为“ hasBeenCalled”。终结点的结果超出了您的单位范围,而不属于您的单元测试。

希望单元测试更加清晰。