Dart でクリーンで簡潔なコードを書く方法が気に入っていますが、Dart は、書くのは簡単だがテストするのが難しい言語の 1 つであるようです。
たとえば、次の非常に単純なメソッドが与えられた場合、単体テストを行うにはどうすればよいでしょうか?
typedef void HandleWebSocket(WebSocket webSocket);
Router createWebSocketRouter(HttpServer server, String context, HandleWebSocket handler) {
var router = new Router(server);
router.serve(context).transform(new WebSocketTransformer()).listen(handler);
return router;
}
new Router()を、モックを返す何らかのファクトリ メソッドに置き換える必要があります。モックは、 serveが呼び出されたときにモックを返す必要があります。次に、モック ストリームを返すモック transform* メソッドが必要です。その時点で、ほとんどの人はあきらめます。
上記のアプローチを使用して単体テストを作成することができましたが、80行の奇数行が必要であり、ファクトリメソッドで実際のクラスを汚染したため、満足しているとは言えません!
これを行うより良い方法はありますか?