1

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行の奇数行が必要であり、ファクトリメソッドで実際のクラスを汚染したため、満足しているとは言えません!

これを行うより良い方法はありますか?

4

0 に答える 0