Giả sử chúng ta đang nói về các hàm tĩnh C thì giải pháp đơn giản nhất là làm cho các hàm không tĩnh khi bạn đang biên soạn một bản dựng gỡ lỗi. Điều này có nghĩa là các biểu tượng sẽ có sẵn để bạn sử dụng trong các bài kiểm tra đơn vị của bạn. Điều này chỉ hoạt động nếu không có bí danh của các biểu tượng mặc dù.
Nếu bạn xác định biểu tượng DEBUG
trên tất cả các debug xây dựng sau đó một cái gì đó như:
#ifdef DEBUG
#define debug_export
#else
#define debug_export static
#endif
và sau đó xác định chức năng tĩnh của bạn như thế này
debug_export void foo(void)
{
...
}
và một trong hai bao gồm tờ khai điều kiện trong file header hoặc nhập thủ công chúng vào tệp kiểm tra đơn vị của bạn:
extern void foo(void);
Các cách khác xung quanh nó là bao gồm các bài kiểm tra đơn vị trong chính tệp nguồn (một chút lộn xộn nếu nó bị mất), không bận tâm đến việc kiểm thử đơn vị chức năng (một chút cảnh báo) hoặc để đánh dấu hàm as dll-local thay vì tĩnh và đảm bảo rằng các thử nghiệm đơn vị của bạn là một phần của đối tượng động đó.
Bản sao có thể có của [Làm cách nào để kiểm tra lớp có phương thức riêng, trường hoặc lớp bên trong?] (Https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that -a-riêng-phương pháp-lĩnh vực-hoặc-bên trong-lớp học) – Raedwald