【发布时间】:2011-05-06 12:40:21
【问题描述】:
我有以下方法签名:
IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state)
回调被挂接到 Completed 事件中,如下所示:
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state)
{
SocketAsyncEventArgs args = new SocketAsyncEventArgs()
WriteAsyncResult ar = new WriteAsyncResult();
ar.Callback = callback;
args.UserToken = ar;
// ...
if (callback != null)
args.Completed += OnSendAsyncComplete;
// ...
socket.SendAsync(args);
// ...
}
private void OnSendAsyncComplete(object sender, SocketAsyncEventArgs e)
{
var ar = e.UserToken as WriteAsyncResult;
ar.Callback(ar);
}
如何测试我的回调是否在 args.Completed 事件引发时被调用。
我知道我必须自己提高它,但我如何测试我的回调是否被调用?
【问题讨论】:
标签: silverlight unit-testing tdd nunit moq