1
TEST DRIVEN DEVELOPMENT
Trình bày : Đinh Quang Đạt
Nội dung
 Giới thiệu về TDD (test-driven
development).
 Giới thiệu về JUnit.
 Sử dụng JUnit trong Netbean để kiểm tra
tính đúng của các phép refactoring (làm
trực tiếp).
Giới thiệu về TDD
Theo pcworld.com.vn
 Ý tưởng chính của TDD: Trước khi bạn bắt
tay viết mã, hãy nghĩ về những gì phải làm
trước. Không giống như lập trình truyền
thống, trong TDD chúng ta viết mã kiểm tra
trước khi viết mã chính, chỉ được viết sau khi
đạt đủ số lượng Unit Test cần thiết cho các
tình huống có thể xảy ra.
Giới thiệu về TDD
Giới thiệu về TDD
Đặc điểm của TDD :
 Là quy trình phát triển tăng dần theo kịch bản và gắn chặt với
các công đoạn kiểm nghiệm trước khi đưa ứng dụng vào vận
hành thực sự.
 Là phương pháp phát triển phần mềm ở đó áp dụng kỹ thuật
Unit Test tiến hành kiểm tra tất cả các interface
 Tạo ra bộ khung vận hành tự động cho tất cả các thao tác
kiểm nghiệm bộ phận trong hệ thống mỗi khi xây dựng một
phiên bản mới.
Giới thiệu về TDD
Lợi ích của TDD :
 Thực hiện theo TDD sẽ làm sáng tỏ thêm các yêu cầu bài
toán, giải tỏa sự bế tắc trong khi đi tìm giải pháp, phát hiện
sớm các vấn đề về thiết kế và tránh được những công việc
phải làm lại.
 TDD là một phần bổ trợ không thể thiếu trong các công việc
lập trình theo nhóm nhỏ, thường là hai người cùng phát triển
một module
 TDD định hướng cho nhóm thiết kế vận dụng tốt các phương
pháp hướng đối tượng
 Xây dựng các đoạn mã chất lượng và an toàn, tập trung hơn,
giảm phân mảnh mã và giảm rủi ro xảy ra ngoài dự kiến.
Giới thiệu về TDD
Quy trình thực hiện:
1. Đối với một module, nghĩ về các công việc sẽ làm và cách
kiểm tra công việc đó như thế nào.
1. Tạo test suite (bộ test) ứng với module đó.
1. Bắt tay thiết kế sơ bộ tất cả các Unit Test(Unit Test) có thể
nghĩ ra. Bước này thực chất là thu thập các tình huống có thể
phát hiện lỗi vào một danh sách công việc cần kiểm nghiệm.
1. Viết mã để đảm bảo các Unit Test được biên dịch.
Giới thiệu về TDD
Quy trình thực hiện:
1. Thực thi các Unit Test, vì mã chính của module chưa tồn tại
nên trạng thái là “fail“.
1. Viết mã cho module để thay đổi trạng thái Unit Test, có thể
bổ sung Unit Test nếu cần thiết.
2. Chạy lại toàn bộ test suite và quan sát các Unit Test lỗi, lặp
lại bước 6-7 cho đến khi tất cả Unit Test đều đạt trạng thái
"pass".
Giới thiệu về TDD
Quy trình thực hiện:
1. Hiệu chỉnh mã để loại bỏ các phần lặp lại, các khối mã và các
phân nhánh, liên kết thiếu hợp lý hoặc các khối mã không còn
hoạt động... đồng thời viết chú giải các phần quan trọng. Hãy
thực hiện công việc này thường xuyên vì chúng ta sẽ không có
thời gian quay lại cho công việc hiệu chỉnh.
Giới thiệu về TDD
Chiến lược phát triển với TDD :
o Thiết kế một dự án thử nghiệm riêng, độc lập, tách biệt với
khu vực phát triển. Không gắn dự án thử nghiệm đó vào phiên
bản sản phẩm được giao cho khách hàng, vì điều này có thể
làm tăng kích thước sản phẩm.
o Xây dựng một cơ sở dữ liệu các test suite cho mọi module
phục vụ việc kiểm nghiệm cả hai khía cạnh phát triển và chức
năng.
Giới thiệu về TDD
Chiến lược phát triển với TDD :
o Chia nhỏ dự án ra nhiều quy trình nhỏ hơn dựa trên ngữ cảnh,
giúp việc viết Unit Test được dễ dàng hơn. Để kiểm tra hiệu
quả của toàn bộ ứng dụng, tốt nhất là kiểm tra hiệu quả của
mọi đơn vị mã nhỏ nhất.
o Có thể thiết lập các cơ sở dữ liệu riêng cho dự án thử nghiệm
lưu trữ tất cả các giá trị đầu vào và các kết quả trả về mong
muốn... XML sẽ là cách tiếp cận tốt nhất cho những cơ sở dữ
liệu loại này.
Giới thiệu về TDD
Chiến lược phát triển với TDD :
o Tích hợp công việc kiểm nghiệm thành một phần trong quy
trình tự động hoá quản lý mã nguồn như tích hợp toàn bộ công
việc, biên dịch vào cuối ngày làm việc... Mỗi một công việc
như vậy được gọi là một "build".
o Cuối cùng thay vì kiểm nghiệm bằng tay, hãy để máy tính
thực hiện tự động và gửi báo cáo cho bạn. Các thông báo
email tự động hàng ngày về tình trạng của các Unit Test sẽ
luôn đảm bảo cho dự án thông suốt. Tất cả các công việc này
có thể được tiến hành trên một máy tính riêng có khả năng
kiểm soát các thay đổi mã nguồn.
Giới thiệu về JUnit
 JUnit là một framework được dùng cho Unit Test
trong Java. JUnit được xây dựng bởi Erich Gamma
và Kent Beck.
 Mỗi phép thử trong JUnit là một phương thức public,
không có đối số và được bắt đầu bằng chữ test
( testXXX()). Nếu chúng ta không tuân thủ theo qui
tắc này thì JUnit sẽ không xác định được các phương
thức test một cách tự động.
Giới thiệu về JUnit
 Lợi ích của Junit
 JUnit tránh cho người lập trình phải làm đi làm lại những việc
kiểm thử nhàm chán bằng cách tách biệt mã kiểm thử ra khỏi mã
chương trình, đồng thời tự động hóa việc tổ chức và thi hành các
bộ số liệu kiểm thử.
 Khi refactoring hoặc khi phải thay đổi chương trình để
phục vụ cho nhu cầu mới, các bộ số liệu kiểm thử trước
đây sẽ cần được sử dụng lại. JUnit giúp người lập trình tự
động hóa các công việc nhàm chán, và chỉ cần nhìn thấy
tín hiệu “xanh” là người lập trình có thể an tâm rằng
module đã được lập trình đúng.
Giới thiệu về JUnit
 Các phương thức trong Junit
 assertXXX() :
1. Boolean assertEquals(): So sánh hai giá trị để kiểm tra
bằng nhau. Phép thử thất bại nếu hai giá trị không bằng
nhau.
2. Boolean assertFalse(): Đánh giá biểu thức logic. Phép thử
thất bại nếu biểu thức đúng.
3. Boolean assertNotNull(): So sánh tham chiếu của một đối
tượng với Null. Phép thử thất bại nếu tham chiếu đối tượng
Null.
4. Boolean assertNotSame(): So sánh địa chỉ vùng nhớ của
hai tham chiếu hai đối tượng bằng cách sử dụng toán tử
==. Phép thử thất bại trả về nếu cả hai đều tham chiếu đến
cùng một đối tượng.
Giới thiệu về JUnit
 Các phương thức trong Junit
 assertXXX() :
1. Boolean assertNull(): So sánh tham chiếu của một đối
tượng với giá trị Null. Phép thử thất bại nếu đối tượng
không là Null.
2. Boolean assertSame(): So sánh địa chỉ vùng nhớ của hai
tham chiếu đối tượng bằng cách sử dụng toán tử ==. Phép
thử thất bại nếu cả hai không tham chiếu đến cùng một đối
tượng.
3. Boolean assertTrue(): Đánh giá một biểu thức logic. Phép
thử thất bại nếu biểu thức sai.
4. void fail(): Phương thức này làm cho test hiện tại thất bại,
phương thức này thường được sử dụng khi xử lý các ngoại
lệ.
Giới thiệu về JUnit
 Các phương thức trong Junit
 setUp() và tearDown() : Hai phương thức này là một phần
của lớp junit.framework.TestCase. Khi sử dụng hai phương thức
này sẽ giúp chúng ta tránh được việc trùng mã khi nhiều test
cùng chia sẻ nhau ở phần khởi tạo và dọn dẹp các biến.
Sử dụng JUnit trong
Netbean để kiểm tra tính
đúng của các phép
refactoring.

More Related Content

PPTX
Quản lý dự án phần mềm bằng SVN
PDF
Clean code - Trở thành một lập trình viên tốt hơn
PDF
NGHIÊN CỨU XÂY DỰNG CHATBOT HỖ TRỢ TƢ VẤN DU LỊCH QUẢNG BÌNH 3f40d1cf
PPTX
CONG NGHE PHAN MEM
PDF
Slides Lập trình mạng
PDF
Quản lý quy trình phần mềm KHTN
PPTX
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
PPTX
Web forms in ASP.net
Quản lý dự án phần mềm bằng SVN
Clean code - Trở thành một lập trình viên tốt hơn
NGHIÊN CỨU XÂY DỰNG CHATBOT HỖ TRỢ TƢ VẤN DU LỊCH QUẢNG BÌNH 3f40d1cf
CONG NGHE PHAN MEM
Slides Lập trình mạng
Quản lý quy trình phần mềm KHTN
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Web forms in ASP.net

What's hot (20)

PDF
Quy tắc thiết kế giao diện và viết code C#
DOCX
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
PPTX
TestNG with selenium
PDF
Giáo trình phân tích thiết kế hệ thống thông tin
DOC
Hệ thống quản lý rạp chiếu phim
PPTX
Spring Security 5
PDF
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
DOCX
Baigiang css
PPTX
Hệ thống quản lý bán hàng online
PPT
TDD (Test Driven Design)
PPT
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PDF
Bài giảng kiểm thử xâm nhập PTIT
PDF
Introduction to BDD with Cucumber for Java
PPT
Kiem thu phan mem
DOC
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PDF
SOLID - Những nguyên lí sống còn
PPTX
Android styles and themes
DOCX
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
ODP
Python unit testing
PDF
SOLID Principles and Design Patterns
Quy tắc thiết kế giao diện và viết code C#
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
TestNG with selenium
Giáo trình phân tích thiết kế hệ thống thông tin
Hệ thống quản lý rạp chiếu phim
Spring Security 5
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Baigiang css
Hệ thống quản lý bán hàng online
TDD (Test Driven Design)
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
Bài giảng kiểm thử xâm nhập PTIT
Introduction to BDD with Cucumber for Java
Kiem thu phan mem
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
SOLID - Những nguyên lí sống còn
Android styles and themes
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Python unit testing
SOLID Principles and Design Patterns
Ad

Similar to Test Driven development (20)

PPTX
TDD (Test Driven Development)
PDF
Bai06 kiem tramodule-k-trpm@softtesting-nntu
PDF
Bai06 kiem tramodule-k-trpm@softtesting-nntu
PPTX
Kiểm Thử Junit
PDF
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
PDF
CHUONG 2.pdf
DOC
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
PDF
Test Types & Test Levels.pdf
PPT
Unit Test
PPTX
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
DOCX
Đồ án kiểm thử phần mềm
DOCX
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
PPTX
Unit Test with test JUNIT
PPT
Kiem thu
DOC
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
DOC
Tailieu.vncty.com t ke-testcase
PPT
Cnpmnc ch3 kiem thu ql cau hinh
PPTX
Automation Testing & TDD
DOCX
Nunit framework for .NET application
DOC
Bai tap testing junit…..
TDD (Test Driven Development)
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Kiểm Thử Junit
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
CHUONG 2.pdf
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Test Types & Test Levels.pdf
Unit Test
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
Đồ án kiểm thử phần mềm
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Unit Test with test JUNIT
Kiem thu
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Tailieu.vncty.com t ke-testcase
Cnpmnc ch3 kiem thu ql cau hinh
Automation Testing & TDD
Nunit framework for .NET application
Bai tap testing junit…..
Ad

Recently uploaded (20)

PDF
TỔNG QUAN KỸ THUẬT CDHA MẠCH MÁU.5.2025.pdf
PDF
TÀI LIỆU DẠY THÊM HÓA HỌC 12 THEO FORM THI MỚI BGD - TẬP 2 - NĂM HỌC 2025-202...
PPTX
Từ và câu NHÓM 4 - LỚP 5 CTST tiểu học.pptx
PDF
BÀI GIẢNG CƠ SỞ SINH HỌC NGƯỜI - KHOA SƯ PHẠM KHOA HỌC TỰ NHIÊN ĐẠI HỌC ĐỒNG ...
PPTX
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
PPTX
VNR202 LỊCH SỬ ĐẢNG, MÔN HỌC CẦN THIẾT C
PPT
Slide Nguyên lý bảo hiểm đại học knh tế quốc dân
PPT
danh-sach-lien-ket_Cấu trúc dữ liệu và giải thuậ.ppt
PDF
SÁNG KIẾN THIẾT KẾ HOẠT ĐỘNG DẠY HỌC CHỦ ĐỀ VẬT SỐNG MÔN KHOA HỌC TỰ NHIÊN 7 ...
PDF
SÁNG KIẾN “NGHIÊN CỨU VÀ ĐỀ XUẤT GIẢI PHÁP TỰ RÈN LUYỆN KỸ NĂNG MỀM CHO HỌC S...
PPTX
KINH TẾ CHÍNH TRỊ - HÀNG HÓA THỊ TRƯỜNG VÀ VAI TRÒ...
PPT
Bai 42 Su chay thanh dong cua chat long va chat khi Dinh luat Becnuli.ppt
PPTX
Ứng dụng AI trong hệ thống cơ điện của nhóm 3.pptx
PDF
DANH SACH TRUNG TUYEN_TUNG NGANH 2025.pdf
PDF
f37ac936-c8c6-4642-9bc9-a9383dc18c15.pdf
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 6 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
DOCX
ĐỀ BÀI ĐÁNH GIÁ GIÁO DỤC GIÁ TRỊ SỐNG VÀ KỸ NĂNG SỐNG
PDF
Giáo Dục Minh Triết: Tâm thế - Tâm thức bước vào kỷ nguyên mới
PPTX
[123doc] - bai-giang-hoc-phan-hanh-vi-nguoi-tieu-dung-trong-du-lich-consumer-...
PPTX
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức
TỔNG QUAN KỸ THUẬT CDHA MẠCH MÁU.5.2025.pdf
TÀI LIỆU DẠY THÊM HÓA HỌC 12 THEO FORM THI MỚI BGD - TẬP 2 - NĂM HỌC 2025-202...
Từ và câu NHÓM 4 - LỚP 5 CTST tiểu học.pptx
BÀI GIẢNG CƠ SỞ SINH HỌC NGƯỜI - KHOA SƯ PHẠM KHOA HỌC TỰ NHIÊN ĐẠI HỌC ĐỒNG ...
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
VNR202 LỊCH SỬ ĐẢNG, MÔN HỌC CẦN THIẾT C
Slide Nguyên lý bảo hiểm đại học knh tế quốc dân
danh-sach-lien-ket_Cấu trúc dữ liệu và giải thuậ.ppt
SÁNG KIẾN THIẾT KẾ HOẠT ĐỘNG DẠY HỌC CHỦ ĐỀ VẬT SỐNG MÔN KHOA HỌC TỰ NHIÊN 7 ...
SÁNG KIẾN “NGHIÊN CỨU VÀ ĐỀ XUẤT GIẢI PHÁP TỰ RÈN LUYỆN KỸ NĂNG MỀM CHO HỌC S...
KINH TẾ CHÍNH TRỊ - HÀNG HÓA THỊ TRƯỜNG VÀ VAI TRÒ...
Bai 42 Su chay thanh dong cua chat long va chat khi Dinh luat Becnuli.ppt
Ứng dụng AI trong hệ thống cơ điện của nhóm 3.pptx
DANH SACH TRUNG TUYEN_TUNG NGANH 2025.pdf
f37ac936-c8c6-4642-9bc9-a9383dc18c15.pdf
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 6 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
ĐỀ BÀI ĐÁNH GIÁ GIÁO DỤC GIÁ TRỊ SỐNG VÀ KỸ NĂNG SỐNG
Giáo Dục Minh Triết: Tâm thế - Tâm thức bước vào kỷ nguyên mới
[123doc] - bai-giang-hoc-phan-hanh-vi-nguoi-tieu-dung-trong-du-lich-consumer-...
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức

Test Driven development

  • 1. 1 TEST DRIVEN DEVELOPMENT Trình bày : Đinh Quang Đạt
  • 2. Nội dung  Giới thiệu về TDD (test-driven development).  Giới thiệu về JUnit.  Sử dụng JUnit trong Netbean để kiểm tra tính đúng của các phép refactoring (làm trực tiếp).
  • 3. Giới thiệu về TDD Theo pcworld.com.vn  Ý tưởng chính của TDD: Trước khi bạn bắt tay viết mã, hãy nghĩ về những gì phải làm trước. Không giống như lập trình truyền thống, trong TDD chúng ta viết mã kiểm tra trước khi viết mã chính, chỉ được viết sau khi đạt đủ số lượng Unit Test cần thiết cho các tình huống có thể xảy ra.
  • 5. Giới thiệu về TDD Đặc điểm của TDD :  Là quy trình phát triển tăng dần theo kịch bản và gắn chặt với các công đoạn kiểm nghiệm trước khi đưa ứng dụng vào vận hành thực sự.  Là phương pháp phát triển phần mềm ở đó áp dụng kỹ thuật Unit Test tiến hành kiểm tra tất cả các interface  Tạo ra bộ khung vận hành tự động cho tất cả các thao tác kiểm nghiệm bộ phận trong hệ thống mỗi khi xây dựng một phiên bản mới.
  • 6. Giới thiệu về TDD Lợi ích của TDD :  Thực hiện theo TDD sẽ làm sáng tỏ thêm các yêu cầu bài toán, giải tỏa sự bế tắc trong khi đi tìm giải pháp, phát hiện sớm các vấn đề về thiết kế và tránh được những công việc phải làm lại.  TDD là một phần bổ trợ không thể thiếu trong các công việc lập trình theo nhóm nhỏ, thường là hai người cùng phát triển một module  TDD định hướng cho nhóm thiết kế vận dụng tốt các phương pháp hướng đối tượng  Xây dựng các đoạn mã chất lượng và an toàn, tập trung hơn, giảm phân mảnh mã và giảm rủi ro xảy ra ngoài dự kiến.
  • 7. Giới thiệu về TDD Quy trình thực hiện: 1. Đối với một module, nghĩ về các công việc sẽ làm và cách kiểm tra công việc đó như thế nào. 1. Tạo test suite (bộ test) ứng với module đó. 1. Bắt tay thiết kế sơ bộ tất cả các Unit Test(Unit Test) có thể nghĩ ra. Bước này thực chất là thu thập các tình huống có thể phát hiện lỗi vào một danh sách công việc cần kiểm nghiệm. 1. Viết mã để đảm bảo các Unit Test được biên dịch.
  • 8. Giới thiệu về TDD Quy trình thực hiện: 1. Thực thi các Unit Test, vì mã chính của module chưa tồn tại nên trạng thái là “fail“. 1. Viết mã cho module để thay đổi trạng thái Unit Test, có thể bổ sung Unit Test nếu cần thiết. 2. Chạy lại toàn bộ test suite và quan sát các Unit Test lỗi, lặp lại bước 6-7 cho đến khi tất cả Unit Test đều đạt trạng thái "pass".
  • 9. Giới thiệu về TDD Quy trình thực hiện: 1. Hiệu chỉnh mã để loại bỏ các phần lặp lại, các khối mã và các phân nhánh, liên kết thiếu hợp lý hoặc các khối mã không còn hoạt động... đồng thời viết chú giải các phần quan trọng. Hãy thực hiện công việc này thường xuyên vì chúng ta sẽ không có thời gian quay lại cho công việc hiệu chỉnh.
  • 10. Giới thiệu về TDD Chiến lược phát triển với TDD : o Thiết kế một dự án thử nghiệm riêng, độc lập, tách biệt với khu vực phát triển. Không gắn dự án thử nghiệm đó vào phiên bản sản phẩm được giao cho khách hàng, vì điều này có thể làm tăng kích thước sản phẩm. o Xây dựng một cơ sở dữ liệu các test suite cho mọi module phục vụ việc kiểm nghiệm cả hai khía cạnh phát triển và chức năng.
  • 11. Giới thiệu về TDD Chiến lược phát triển với TDD : o Chia nhỏ dự án ra nhiều quy trình nhỏ hơn dựa trên ngữ cảnh, giúp việc viết Unit Test được dễ dàng hơn. Để kiểm tra hiệu quả của toàn bộ ứng dụng, tốt nhất là kiểm tra hiệu quả của mọi đơn vị mã nhỏ nhất. o Có thể thiết lập các cơ sở dữ liệu riêng cho dự án thử nghiệm lưu trữ tất cả các giá trị đầu vào và các kết quả trả về mong muốn... XML sẽ là cách tiếp cận tốt nhất cho những cơ sở dữ liệu loại này.
  • 12. Giới thiệu về TDD Chiến lược phát triển với TDD : o Tích hợp công việc kiểm nghiệm thành một phần trong quy trình tự động hoá quản lý mã nguồn như tích hợp toàn bộ công việc, biên dịch vào cuối ngày làm việc... Mỗi một công việc như vậy được gọi là một "build". o Cuối cùng thay vì kiểm nghiệm bằng tay, hãy để máy tính thực hiện tự động và gửi báo cáo cho bạn. Các thông báo email tự động hàng ngày về tình trạng của các Unit Test sẽ luôn đảm bảo cho dự án thông suốt. Tất cả các công việc này có thể được tiến hành trên một máy tính riêng có khả năng kiểm soát các thay đổi mã nguồn.
  • 13. Giới thiệu về JUnit  JUnit là một framework được dùng cho Unit Test trong Java. JUnit được xây dựng bởi Erich Gamma và Kent Beck.  Mỗi phép thử trong JUnit là một phương thức public, không có đối số và được bắt đầu bằng chữ test ( testXXX()). Nếu chúng ta không tuân thủ theo qui tắc này thì JUnit sẽ không xác định được các phương thức test một cách tự động.
  • 14. Giới thiệu về JUnit  Lợi ích của Junit  JUnit tránh cho người lập trình phải làm đi làm lại những việc kiểm thử nhàm chán bằng cách tách biệt mã kiểm thử ra khỏi mã chương trình, đồng thời tự động hóa việc tổ chức và thi hành các bộ số liệu kiểm thử.  Khi refactoring hoặc khi phải thay đổi chương trình để phục vụ cho nhu cầu mới, các bộ số liệu kiểm thử trước đây sẽ cần được sử dụng lại. JUnit giúp người lập trình tự động hóa các công việc nhàm chán, và chỉ cần nhìn thấy tín hiệu “xanh” là người lập trình có thể an tâm rằng module đã được lập trình đúng.
  • 15. Giới thiệu về JUnit  Các phương thức trong Junit  assertXXX() : 1. Boolean assertEquals(): So sánh hai giá trị để kiểm tra bằng nhau. Phép thử thất bại nếu hai giá trị không bằng nhau. 2. Boolean assertFalse(): Đánh giá biểu thức logic. Phép thử thất bại nếu biểu thức đúng. 3. Boolean assertNotNull(): So sánh tham chiếu của một đối tượng với Null. Phép thử thất bại nếu tham chiếu đối tượng Null. 4. Boolean assertNotSame(): So sánh địa chỉ vùng nhớ của hai tham chiếu hai đối tượng bằng cách sử dụng toán tử ==. Phép thử thất bại trả về nếu cả hai đều tham chiếu đến cùng một đối tượng.
  • 16. Giới thiệu về JUnit  Các phương thức trong Junit  assertXXX() : 1. Boolean assertNull(): So sánh tham chiếu của một đối tượng với giá trị Null. Phép thử thất bại nếu đối tượng không là Null. 2. Boolean assertSame(): So sánh địa chỉ vùng nhớ của hai tham chiếu đối tượng bằng cách sử dụng toán tử ==. Phép thử thất bại nếu cả hai không tham chiếu đến cùng một đối tượng. 3. Boolean assertTrue(): Đánh giá một biểu thức logic. Phép thử thất bại nếu biểu thức sai. 4. void fail(): Phương thức này làm cho test hiện tại thất bại, phương thức này thường được sử dụng khi xử lý các ngoại lệ.
  • 17. Giới thiệu về JUnit  Các phương thức trong Junit  setUp() và tearDown() : Hai phương thức này là một phần của lớp junit.framework.TestCase. Khi sử dụng hai phương thức này sẽ giúp chúng ta tránh được việc trùng mã khi nhiều test cùng chia sẻ nhau ở phần khởi tạo và dọn dẹp các biến.
  • 18. Sử dụng JUnit trong Netbean để kiểm tra tính đúng của các phép refactoring.