【发布时间】:2015-12-30 14:06:10
【问题描述】:
我有以下方法:
public async Task DeleteAmendment(int amendmentHeaderId, int userId)
{
// Delete the corresponding version records.
await _amendmentVersionService.DeleteForAmendmentAsync(amendmentHeaderId);
// Delete the corresponding lifecycle records.
await _amendmentLifecycleService.DeleteForAmendmentAsync(amendmentHeaderId);
// Delete the amendment header record itself.
await _amendmentHeaderService.DeleteAsync(amendmentHeaderId, userId);
}
我正在尝试验证方法是否按顺序调用。
我已经尝试设置回调(见下文)
AmendmentVersionService.Setup(x => x.DeleteForAmendmentAsync(It.IsAny<int>()))
.Callback(() => ServiceCallbackList.Add("AmendmentVersionService"));
AmendmentLifecycleService.Setup(x => x.DeleteForAmendmentAsync(It.IsAny<int>()))
.Callback(() => ServiceCallbackList.Add("AmendmentLifecycleService"));
AmendmentHeaderService.Setup(x => x.DeleteAsync(It.IsAny<int>(), It.IsAny<int>()))
.Callback(() => ServiceCallbackList.Add("AmendmentHeaderService"));
但列表只包含字符串“AmendmentVersionService”
有什么想法吗?
【问题讨论】:
-
为什么不按顺序调用它们?如果您在它们中的每一个中使用 await,则执行将等待每个完成,然后再调用下一个
-
您能否向我们展示您调用 DeleteAmendment 的其余测试?
-
执行顺序很重要,我想确保如果其他开发人员将来切换顺序,测试会中断
-
如果您有一个无效的 DeleteAmendment 并且没有 await ,它会起作用吗? (即:如果您删除异步)