我喜欢你在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需要返回一个模拟。然后需要有一个模拟转换*方法返回一个模拟流.....并且在那时大多数人都会放弃!
我已经设法使用上述方法编写单元测试,但因为它需要80个奇数行,并且用工厂方法污染了实际的类,我很难说我很满意它!
有更好的方法吗?