Showing posts with label TDD. Show all posts
Showing posts with label TDD. Show all posts

January 26, 2016

Dễ dàng giả lập HTTP với module Nock trong NodeJS

source: https://cms-assets.tutsplus.com/uploads/users/487/posts/22836/final_image/http-mock-test.png
Theo kế hoạch đặt ra, và phải đẩy thật mạnh blog cho năm nay, nên trước khi Tết Tết cái con Khỉ nó kéo về, làm tinh thần xuống, và sau khi Tết nó qua thì cũng làm tinh thần không nhanh chóng khôi phục, thì làm theo bài blog này, ghi chú lại việc giả lập HTTP trong NodeJS nhằm thực hiện test. (Haiz, số là dạo gần đây bị cái TDD nó đè nên hành xác bu theo đắm đuối)

Mục tiêu và tại sao lại giả lập HTTP, và có tác dụng gì cho việc unit test - TDD. Đơn giản là, hiện tại mình đang viết vài project NodeJS theo cơ chế "thông" nhau bởi API. Unit test vốn dĩ là isolated test, có nghĩa là cô lập nó lại mà test. Nên mình cần giả lập (mock) http response từ API server, rồi tiếp đó mình chỉ tập trung viết code cho client là đủ (không thèm biết API nó mần sao, chỉ cần giả lập những response như nó mô tả là đủ)

January 9, 2016

Sinon - Solved method already wrapped

source: http://cdn.dev.classmethod.jp/wp-content/uploads/2012/03/sinonjs.png
Dạo gần đây do một số nhu cầu nên phải lấn sâu làm việc với mấy anh chàng JS. Từ backend (NodeJS) đến frontend, mà vốn dĩ ưa thích cái phong cách TDD, nên giờ code gì cũng lôi TDD vào mà mần. Đồng đạo có thễ xem lại bài hướng dẫn testing với JS tại đây

Trong lúc mần ăn với TDD JS thì gặp phải tình huống mock một đối tượng và bị báo lỗi "already wrapped". Mần mò một khoảng thời gian, từ google đến stackoverflow rồi thì cũng giải quyết được cái vấn đề này. Hôm nay, có tí thời gian viết bài blog chia sẻ tới mọi người.

March 16, 2015

Unit test multi modules in Phalex project

Sau khi mình release project Phalex của mình thì tới nay đã khá lâu (cũng gần 4 tháng rồi) và mình cũng bắt đầu code vài dự án với Phalex. Một trong những dự án dựa trên Phalex 5SOnline - đây là một dự án mình làm cho công ty HDViet. Tuy nhiên, bên cạnh đó mình vẫn âm thâm code một dự án riêng của cá nhân, hy vọng sẽ trình làng mọi người vào giữa năm nay.

Dự án của HDViet thì phải chạy cho nhanh nên không có test (TDD) cho dự án, còn dự án cá nhân thì chắc chắn là có. Phalex ra đời nhằm mục đích là multi modules, nên khi làm việc với nó, mình cũng mất khá nhiều thời gian khi chạy test cho từng module. May mắn thay, vô tình hôm nay đọc cách test của Zend Framework 2, nên mình đã thử áp dụng vào project và đã thành công, nay mình chia sẽ lại với các bạn nếu ai đó có dùng Phalex để code

January 26, 2015

TDD và quan điểm của tôi

http://www.filecatalyst.com/wp-content/uploads/tdd.png


Test Driven Development (TDD) là một trong rất nhiều quy trình phát triển phần mềm (không chỉ trong lĩnh vực web). Đây là một quy trình phát triển sản phẩm dựa trên test.

KHÔNG BÀN LUẬN

Bài viết này không nhằm giải thích thế nào là TDD, không phân tích ưu nhược điểm TDD, không so sánh TDD với các quy trình khác, và càng không hướng dẫn mọi người cách thực hiện TDD. Nếu bạn đang tìm một trong những thứ mình vừa đề cập bên trên, bạn có thể ngừng đọc tiếp phần bên dưới ^_^

VẬY BÀN ĐIỀU GÌ - NOTHING ^_*

Bài viết cũng chẳng bàn thêm gì trong TDD, chỉ là chia sẻ góc nhìn của mình khi dấn thân làm TDD, những cảm nhận, suy nghĩ, khó khăn và những thú vị xung quanh TDD mà mình từng trải nghiệm.