我想为复杂数据结构中的功能编写测试用例。该功能不依赖于所有数据,并且获得具有所需属性的实际实例很难。因此,我正在使用Mocks。
URL=http://safetracker-threetinker.rhcloud.com/api/${userid}/locations?lat=${latitude}&lng={longitude}
在def test_Case:
t1 = Timeseries(...) # Data
t2 = Timeseries(...) # Data
fancy_t1 = Mock(data=d1, additional_property= ...)
fancy_t2 = Mock(data=d2, additional_property= ...)
container = Mock(data_sets=[fancy_t1, fancy_t2])
ret = function_to_test(container)
assert ret ... # Some condition
内,可以调用
function_to_test
我希望container.aggregation.aggregate(fancy_t, more_arguments1, more_arguments2, ... )
调用的操作非常简单。它应该评估为aggregation.aggregate
(时间序列)并忽略t1+t2
和其他参数。
我该怎么做?
如果我这样做
fancy_t
它评估为agg = Mock()
agg.return_value = d1 + d2
container.aggregation.get_aggregated_positions = agg
而不是时间序列。
答案 0 :(得分:0)
类似的东西:
from mock import patch
with patch('package.container.aggregation.get_aggregated_positions', return_value=_fake_fnc()):
ret = function_to_test(container)
assert ret ... # Some condition
def _fake_fnc():
return 0.0