AspectMock là gì? Tại sao dùng AspectMock với Codeception
Bài viết được sự cho phép của tác giả Lê Chí Dũng
1. AspectMock là gì?
AspectMock là PHP mocking framework đã được tối ưu và dễ sử dụng so với Mock trong PHP Unit và Mockery. Nó được tạo ra như một phần mở rông trong việc sử dụng Codeception hoặc PHP Unit để test. Vì quá thuận tiện và ngắn gọn nên trong lúc viết test code, mình vẫn thấy khó khăn trong việc custom lại. Cái này thì tùy mỗi người dùng sẽ có cảm nhận riêng, mình vẫn đánh giá cao framework này.
2. Tại sao dùng AspectMock với Codeception?
Để biết câu trả lời hãy xem ưu điểm khi sử dụng AspectMock so với Mock/Stub trong PHP Unit:
- Nhân bản được các static methods
- Nhân bản các class methods called anywhere
- Cách viết dễ dàng, dễ nhớ và ngắn gọn vô cùng so với PHP Unit.
- Do kế thừa từ PHP Unit nên bạn có thể dùng PHP Unit tùy ý trong AspectMock nếu cần.
3. Cài đặt
Tham khảo tại https://github.com/Codeception/AspectMock
4. Sử dụng
4.1. Mock / Stub (Object / Function)
4.1.1. Object and some function in it
Mock Class and fake some method in it using aspectMock
Stub Class and fake some method in it using aspectMock (replace double for Stub)
Another way, using PhpUnit (not recommended in this document)
Get Class instance with call / not call constructor
4.1.2. Built-in PHP function
4.1.3. Test private / protect function
4.2. Verify Invoked Function
4.3. Annotations
4.3.1. @dataProvider
Test function with params in data set
4.3.2. @require
4.3.3. @codeCoverageIgnore
exclude lines of code from the coverage analysis
4.4. Assert
Show more here
- assertTrue()
- assertFasle()
- assertEquals($expect,$actual)
- assertEmpty()
- assertNull()
- assertCount()
- assertContain()
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
- Hướng dẫn sử dụng Nock để mock request APIs cho việc run Integration test
- Lập trình theo kiểu Aspect Oriented Programming (AOP) sử dụng Spring Framework
- Mock API bằng Mirage JS
Xem thêm Việc làm Developer hấp dẫn trên TopDev
- Đ Đón đầu 7 xu hướng công nghệ hàng đầu trong năm 2024
- T Thực hiện “Chuẩn Hóa CV” nhận ngay quà hấp dẫn
- M METRO.digital Vietnam culture and ways of working
- G GW2790QT – Màn hình 2K tốt nhất dành cho lập trình viên
- S So sánh AWS, Google Cloud và Azure năm 2024
- D Data Analyst là gì? Chuyện nghề của một Data Analyst
- C Công nghệ nào đứng sau AI tạo ra MC ảo đang hot rần rần?
- D Dân IT có thể được ChatGPT hỗ trợ code tự động hóa như thế nào?
- 6 6 khó khăn có thể bạn sẽ gặp khi theo học ngành CNTT
- Đ ĐỐI THOẠI VỚI DOANH NGHIỆP HÀN QUỐC VỀ PHÁT TRIỂN NHÂN LỰC CHẤT LƯỢNG CAO