使单元测试仅在调用回调时通过
本文关键字:回调 调用 单元测试 | 更新日期: 2023-09-27 18:10:27
我试图单元测试一点代码,以确保调用回调,但似乎即使没有"Assert"-调用的方法,它将通过。考虑下面的代码示例:
public void Show_ShowSomeAdFormat_CallbackShouldBeInvoked()
{
AdManager adManager = new AdManager();
adManager.Show<VideoTestAdFormat>((response) =>
{
//Assert.Pass(); <--- With or without this, the test will pass.
//I need it to only pass if it reaches this. How is it done?
});
}
如果你看了评论,我想你会明白我想要什么。
谢谢!
使用捕获的bool
public void Show_ShowSomeAdFormat_CallbackShouldBeInvoked()
{
AdManager adManager = new AdManager();
bool callbackInvoked = false;
adManager.Show<VideoTestAdFormat>((response) => callbackInvoked = true);
// If the callback is invoked asynchronously,
// you'll need a way to wait here for Show to complete.
Assert.IsTrue(callbackInvoked);
}
编辑:如果你正在使用。net 4,你可能会让Show
返回一个Task
,当Show
完成工作时完成。在早期的。net版本中,您可以返回ManualResetEvent
。"Return"可以是返回值,也可以是带out
参数的Show
的重载。