[Thực hành] Ứng dụng máy tính đơn giản

Automated Testing & TDD

Mục tiêu

Luyện tập thực thi các test case sử dụng JUnit.

Mô tả

Trong phần này, chúng ta sẽ viết một ứng dụng máy tính đơn giản để thực hiện các phép tính cộng và trừ.

Các phương thức cộng và trừ được kiểm thử tự động thông qua các test case sử dụng JUnit.

Hướng dẫn

Bước 1: Clone dự án có sẵn từ Github

Clone dự án từ địa chỉ: https://github.com/codegym-vn/junit-simple-calculator

Mở dự án bằng IntelliJ: Chọn File > Open và trỏ đến thư mục vừa clone về.

Bước 2: Quan sát cấu trúc của dự án

Thư mục src chứa mã nguồn của dự án

Thư mục test chứa các file test

File SimpleCalculator là nơi chứa mã nguồn thực hiện các phép tính

File SimpleCalculatorTest là nơi chứa các phương thức test tương ứng với các phương thức của lớp SimpleCalculator.

Bước 3: Thực thi các test case đã có sẵn

 Nhấn chuột phải vào file SimpleCalculatorTest và chọn mục: Run ‘SimpleCalculatorTest’.

Quan sát kết quả:

Trong đó:

  • Có 8 test case đã được thực thi
  • Thời gian chạy các test case là 66ms
  • Nguyên nhân gây lỗi là “UnsupportedOperationException”: Đây là exception thường được tung ra để chỉ rằng phương thức chưa được hoàn thiện.

Bước 4: Viết mã nguồn để pass các test case của phương thức add()

Đi đến file SimpleCalculator và thay thế câu lệnh sau trong phương thức add():

throw new UnsupportedOperationException();

bằng câu lệnh:

return first + second;

Bước 5: Thực thi các test case và quan sát kết quả

Thực hiện các bước như trong Bước 3 và quan sát kết quả:

Vẫn có 8 test case được thực thi, và 4 trong số đó đã pass.

Bước 6: Viết mã nguồn để pass các test case của phương thức sub()

Thay thế câu lên sau trong phương thức sub():

throw new UnsupportedOperationException();

bằng câu lệnh

return first - second;

Bước 7: Thực thi các test case và quan sát kết quả

Tất cả 8 test case đều đã pass.

Bước 8: Quan sát các phương thức test bên trong lớp SimpleCalculatorTest để thấy được cách viết các test.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *