2011-08-26 43 views
15

Tôi vừa bắt đầu một dự án C mới, sử dụng gcc (hiện tại 4.5.2). Bây giờ, trước khi nó phát triển quá lớn, tôi muốn bắt đầu đơn vị thử nghiệm nó. Sau khi một số googling tôi đã nhận ra rằng có rất nhiều khuôn khổ để lựa chọn. Tôi không thể đủ khả năng kiểm tra tất cả.Khung kiểm tra đơn vị C nào?

Lưu ý rằng tôi không ngại sử dụng g ++ cho các bài kiểm tra đơn vị, miễn là tôi có thể sử dụng gcc cho chính dự án. Nó sẽ không bị tổn thương nếu nó có tích hợp VIM tốt, mặc dù không bắt buộc.

Vì vậy, đơn giản, tôi nên chọn và tại sao?

+0

bản sao có thể có của [Mã kiểm tra đơn vị C] (http://stackoverflow.com/questions/65820/unit-testing -c-code) – philant

Trả lời

5

Tôi đã chơi với libcheck, mà là khá tốt. Đã một thời gian kể từ khi tôi sử dụng nó lần cuối, nhưng nó thực hiện công việc và chỉ thẳng C.

+0

Tôi đọc về điều đó. Giá trị một thử tôi đoán. Cảm ơn! – Johan

3

Cá nhân tôi là người hâm mộ của Google C++ Testing Framework. Nó đòi hỏi g + + (Tôi không nghĩ rằng có một cách xung quanh nó), nhưng nó xử lý đồ đạc thử nghiệm rất tốt và có đầu ra thử nghiệm rất hữu ích. Đây là khung được Chrome sử dụng. Bạn cũng không phải lo lắng về việc cài đặt nó trên hệ thống của bạn, vì nó có thể được xây dựng cùng với phần còn lại của nguồn của bạn.

Một tập tin thử nghiệm có thể đơn giản như thế này:

#include "gtest/gtest.h" 
#include "random.h" 

TEST(TestGetRandomInt, ReturnsARandomNumber){ 
    ASSERT_EQ(4, getRandomInt()); 
} 
+0

Bạn có thể sử dụng nó để thử nghiệm một dự án được biên soạn với gcc, mặc dù các thử nghiệm được viết cho g ++? – Johan

+0

@Johan - Tôi tin như vậy. Trang web của khung quảng cáo tương thích với gcc, nhưng tôi chưa bao giờ sử dụng nó theo cách đó. Chúng bao gồm một Makefile, vì vậy bạn có toàn quyền kiểm soát các bài kiểm tra được biên dịch và liên kết như thế nào. – derekerdmann

+3

+1 cho những gì tôi hy vọng là một tham chiếu xkcd che kín. –