NUnitでは当然ながら一つのTestCaseは一つのパブリックなメソッドで表されます。このためイベントのテストをするためには少し工夫がいります。
//Connectを呼ぶとOnConnectedイベントが呼び出されること。
[Test]
public void TestOnConnect() {
var server = new AfwServer(handler);
server.OnConnected
+= new EventHandler(
(sender, e) => {
Console.WriteLine("ServerConnected");
Assert.Pass("** TEST PASS ***");
}
);
server.Connect();
}
まぁ簡単書くとイベントメソッドを匿名メソッドでテストのメソッド内にに書いてしまいなさいと言うことです。
このほかこっちの方が断然COOLだぜ!って書き方をなさっている方がおられましたらぜひご連絡ください。
(追記:16:30)
Assert.Pass()の位置違うやろと横から突っ込みが入り、全くその通りであるのでコードを修正しました。。。
コメント
NUnitでeventのテストをする。その二。そして訂正。
3/30日に「NUnitでeventのテストをする。」という記事を書いたのですが…