Sản phẩm hiện tại tôi đang làm là một Dịch vụ Windows được viết bằng C++ và chuyển tiếp tất cả các chức năng mới sẽ có các bài kiểm tra đơn vị được viết cho nó. Nhưng điều này tạo ra một vấn đề thú vị (đối với tôi ít nhất) chúng tôi thực hiện rất nhiều cuộc gọi Win32 cho nhiều thứ khác nhau và hành xử tương ứng, vì vậy để các bài kiểm tra đơn vị được hoàn thành, sẽ tốt hơn nếu kiểm tra nhiều đầu ra, không chỉ hệ thống hiện tại tiểu bang.Các cuộc gọi API Mocking và Win32
Câu hỏi của tôi là cách tốt nhất để thử kết quả của cuộc gọi Win32 là gì? Tôi đã nghĩ về hai phương pháp khác nhau:
1) Đặt tất cả các cuộc gọi Win32 được sử dụng vào con trỏ hàm và chuyển chúng vào các hàm hoặc lớp (tùy thuộc vào số lần chúng bị tấn công) sử dụng chúng và sử dụng các kết quả.
2) Có rất nhiều #ifdef UNITTEST
ở khắp mọi nơi và nếu nó đang gọi các phương pháp đặc biệt của riêng tôi hoặc có các phương thức thông thường được gọi là nếu không.
Tôi hoàn toàn có cơ sở ở đây hay thiếu một phần kiến thức cơ bản?
Điều gì xảy ra nếu bạn cần đối số để sửa đổi hành vi của UnitTestMessageBox? #ifdef UNITTEST #undef MessageBox #define MessageBox UnitTestMessageBox #endif – Manolete