我刚才有一个关于如何为以下函数编写测试的问题?这是我对所涉及部分的测试,但我不确定如何更改测试以覆盖print语句并再次调用var costByScn = d3.nest()
.key(function(d) { return d.scenario_desc })
.key(function(d) { return d.ftprnt })
.key(function(d) {
var mth_dt = new Date(d.mth_dt).getTime();
return mth_dt;
})
.rollup(function(v) {
var z = _.map(v, 'appl_ci_id');
console.log("z is: ", z)
var q = _.uniq(z)
console.log("q is: ", q)
var len = q.filter(function(val, i, arr) {
return arr.indexOf(val) === i;
}).length;
return len;
})
.entries(response);
函数。任何帮助将不胜感激!
以下是我测试覆盖部分的代码:
get_employee_name
答案 0 :(得分:0)
如果用户没有输入任何内容,我遇到的第一个问题是使用递归。所以我重构了我的代码,如果没有用户输入,使用 continue 来使用while循环。 以下是新代码和涵盖所有行的测试:
def get_employee_name():
"""Prompt the employee for their name."""
while True:
employee_name = input("Enter employee name: ")
if len(employee_name) == 0:
print("\nYou must enter your name!\n")
continue
else:
return employee_name
def test_get_employee_name(self):
with mock.patch('builtins.input', side_effect=["", "Brian Weber"],
return_value=DATA["employee_name"]):
assert worklog.get_employee_name() == DATA["employee_name"]