1 回答
TA贡献1906条经验 获得超2个赞
为了测试循环用例,我们应该提供大量模拟数据。与循环迭代相同。
例子。如果用例有 3 个迭代循环调用存储库三次,那么我们必须提供 3 个数据模拟。
代码应该是这样的:
func TestService_SaveTodoSuccess(t *testing.T) {
// Mock Entity Todo
todo := Todo{
Title: "this is title",
}
// Mock Entity TodoDetail
todoDetail1 := TodoDetail{
ID: todo.ID,
Item: "item 0",
}
todoDetail2 := TodoDetail{
ID: todo.ID,
Item: "item 1",
}
todoDetail3 := TodoDetail{
ID: todo.ID,
Item: "item 2",
}
repository.Mock.On("CreateTodo", &todo).Return(todo)
// calls 3 times "CreateTodoDetail" Repository
repository.Mock.On("CreateTodoDetail", &todoDetail1).Return(todoDetail1)
repository.Mock.On("CreateTodoDetail", &todoDetail2).Return(todoDetail2)
repository.Mock.On("CreateTodoDetail", &todoDetail3).Return(todoDetail3)
result, err := testService.SaveTodo(3)
assert.Nil(t, err)
assert.NotNil(t, result)
}
该场景在 todoDetail 上构建 3 个不同的数据以模拟CreateTodoDetail存储库的 3 次迭代
- 1 回答
- 0 关注
- 73 浏览
添加回答
举报