我正在尝试对一些代码进行单元测试,以确保调用回调,但似乎即使没有“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?
});
}
如果您阅读评论,我认为您将了解我的目标。
谢谢!
答案 0 :(得分:1)
使用已捕获的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
完成ManualResetEvent
完成工作。在早期的.NET版本中,您可以返回Show
。 &#34;返回&#34;可以是返回值,也可以是带有out
参数的rand()
重载。