【发布时间】:2020-06-20 10:39:20
【问题描述】:
我有一个需要用 cunit 测试的函数。 函数如下所示:
void server(unsigned short port) {
int sock_fd = socket(AF_INET, SOCK_STREAM, 0);
if (sock_fd < 0) {
perror("server: socket");
exit(1);
}
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(port);
server.sin_addr.s_addr = INADDR_ANY;
memset(&server.sin_zero, 0, 8);
if (bind(sock_fd, (struct sockaddr *)&server, sizeof(server)) < 0) {
perror("server: bind");
close(sock_fd);
exit(1);
}
if (listen(sock_fd, MAX_BACKLOG) < 0) {
perror("server: listen");
close(sock_fd);
exit(1);
}
......
}
如何使用 cunit 测试这个函数?
【问题讨论】:
-
你需要问自己,什么你想测试。然后你可以为它写一个测试。这种方法独立于特定的单元测试框架。 -- 例如,您可以将
socket()、bind()等真正的函数替换为您自己的mock,以检查它们是否被正确调用。