1

我喜欢你可以在 Dart 中编写干净简洁的代码的方式,但似乎 Dart 是一种易于编写但难以测试的语言!

例如,给定以下相当简单的方法,如何进行单元测试?

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时,mock 需要返回一个 mock 。然后需要有一个返回模拟流的模拟 transform* 方法……到那时大多数人会放弃!

我已经设法使用上述方法编写了一个单元测试,但由于它需要 80 多行并且用工厂方法污染了实际类,我很难说我对它很满意!

有没有更好的方法来做到这一点?

4

0 回答 0