November 16, 2015

Testing with mocha and chaijs

Lâu lắm rồi mới ngồi viết một bài kỹ thuật. Hôm nay, mình chia sẻ một chút về cách thực hiện test cho ứng dụng javascript dựa trên Mocha và ChaiJs

Bài viết chỉ mang tính chất ghi lại quá trình mình làm việc với JS và theo định hướng TDD/BDD cho phát triển ứng dụng. Nên sẽ rất căn bản. Và mục tiêu của bài viết cũng chỉ dừng lại ở việc làm sao test được chứ cũng không có gì sâu xa hơn. Bài viết sẽ được đề cập đến Mocha - test framework, ChaiJS - Assertion library

Tính năng của Mocha

  • Chạy được trên nền NodeJS hay trên Browser
  • Hỗ trợ TDD/BDD
  • Xài thư viện assertion nào cũng được (dùng của node native hay dùng cái gì cũng được, bài viết demo dùng ChaiJS)
  • Xài thư việc mock nào cũng đc (bài viết không đề cập cái này)
  • Hỗ trợ test async
  • Cái test nào chậm nó la làng
  • Hỗ trợ file watcher (giống Grunt watcher, nhưng bài viết cũng không đề cập)
  • Xem thêm trên trang chủ ^_^

Việc cần làm trước khi code

Đầu tiên là cài đủ các gói cần thiết này, môi trường mình demo sẽ là NodeJS nên chỉ làm trên đây thôi. (Có thể bài sau sẽ nói về Browser)
  • npm install -g mocha
  • npm install -g chai
Lưu ý: là do mình cài chế độ global (-g) nên các bạn phải thực hiện lệnh với sudo permission

Demo code test simple

Ok, vào cái chính thôi. Bây giờ mình có đoạn code nhỏ cho như bên dưới (đoạn code demo bằng Coffee script)
Sau đó dựng lên code test như sau:
Cuối cùng, ra console (terminal) chạy lệnh
mocha --compilers coffee:coffee-script/register --recursive -G

Kết quả


Vài vấn đề nơi đây

  • Vì mình đã cài mocha ở chế độ global nên có thể gọi mocha ngay
  • Vì code demo của mình dùng là CoffeeScript nên cần đăng ký với mocha để nó biết mà xử
  • Khi require chai thì gọi hàm should() luôn
Bài viết được tham khảo từ slide: Testing with Mocha của speaker: Revath S Kumar

No comments:

Post a Comment