Дротик как юнит тест простой функции
Мне нравится, как вы можете написать чистый лаконичный код на 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;
}
Вам нужно как-то заменить новый Router() каким-то фабричным методом, который возвращает макет. Затем макет должен вернуть макет, когда вызывается подача. Тогда для этого нужен метод фиктивного преобразования *, который возвращает фиктивный поток..... и в этот момент большинство людей сдастся!
Мне удалось написать модульный тест, используя вышеуказанный подход, но так как он потребовал 80 нечетных строк и загрязнил реальный класс фабричным методом, я с трудом могу сказать, что я доволен этим!
Есть ли лучший способ сделать это?