2009-01-29 44 views
6

Tôi là một nhà phát triển web chuyên nghiệp và do đó tôi đã quen với việc sử dụng các công cụ kiểm tra và ngôn ngữ kịch bản cấp cao. Gần đây tôi đã làm việc, cá nhân, nhiều hơn với C và viết nhiều chương trình C cho các hệ thống dựa trên Unix để thực hiện các tác vụ khác nhau.Bạn sử dụng mã C kiểm tra đơn vị nào?

Tuy nhiên, tôi vẫn chưa nhận được một rãnh tốt cho đơn vị kiểm tra mã này và tôi đã tự hỏi những gì các công cụ lập trình C sử dụng để tạo kiểm tra tự động để xác minh mã.

+0

Đây là loại câu hỏi tôi đang tìm kiếm nhưng tìm kiếm không thực sự tìm thấy nó. Cảm ơn! – Mitchell

Trả lời

1

Bạn có đang thử nghiệm mã C đúng hay bạn có thể kết hợp trong một số C++ không? Nếu C++ là OK, cppunit có thể đáng để kiểm tra. Nếu bạn đang thử nghiệm một thư viện, bạn có thể chỉ cần liên kết thư viện của bạn vào ứng dụng thử nghiệm đơn vị của bạn. Nếu bạn đang thử nghiệm một ứng dụng, có thể bạn sẽ phải tạo một thư viện và sau đó liên kết nó với cả ứng dụng của bạn và ứng dụng thử nghiệm đơn vị.

1

Tôi đã có câu hỏi này một lần và phát hiện CUnit. Tôi chỉ sử dụng nó cho một dự án nhỏ, nhưng nó có vẻ ổn. Không gần như thuận tiện như JUnit hay NUnit mà tôi đã từng sử dụng! Đối với các dự án C++ tôi sử dụng cppunit hoạt động khá tốt.

1

CUtest. Nó thực sự gọn gàng. Nhỏ, không dựa vào một ngôn ngữ máy phát điện, nhanh ... những gì không thích?

0

Nếu bạn chỉ muốn có một cơ chế kiểm tra quick'n'dirty, có một cái nhìn tại assert vĩ mô, một phần của ANSI C.

+0

Ồ, và printf cũng có thể hữu ích! : P – hmijail

1

xem xét sử dụng CppUTest. Nó được viết bằng C++, nhưng ẩn C++ để các lập trình viên C có thể bỏ qua C++.

Unity cũng là phương tiện thử nghiệm chỉ dành cho C. Nó sử dụng ruby ​​để tạo ra những người chạy thử nghiệm.

Tôi sẽ không rõ ràng về CppUnit. Nó đòi hỏi kiến ​​thức C++ và mỗi bài kiểm tra phải được cài đặt riêng lẻ.

James

1

tôi làm việc như nhà phát triển và tôi thích sử dụng CMocka công cụ để cung cấp UnitTesting cho ngôn ngữ C.. Đó là công cụ đơn giản dựa trên GTest (chủ yếu là thử nghiệm đơn vị C++) và nó thực sự dễ hiểu. Một thời gian trước, tôi đã thực hiện một nghiên cứu cho công cụ kiểm tra tốt nhất và đơn giản nhất và quyết định điều này.

Và sau một thời gian làm việc với điều này tôi thực sự tự tin. Sử dụng chỉ thị tiền xử lý

#define MyFunction(iEntry) mock_MyFunction(iEntry) 

bạn cũng có thể cắt bất kỳ chức năng nào bạn muốn mô phỏng (ngay cả các chức năng cơ bản như sizeof(), malloc() vv).

Sau bước này, bạn chỉ cần tạo các chức năng mô phỏng (mock_MyFunction (iEntry)), đưa chúng vào dự án của bạn và mô phỏng hành vi của chúng. Cách ưu tiên là đặt chúng một số giá trị trước khi gọi chúng sẽ trả về (will_return_always (mock_MyFunction, 5)). Và khi chức năng này được gọi, nó sẽ luôn trả về giá trị 5.

Ngoài ra bạn hoàn toàn có thể tránh ngôn ngữ C++ và tiếp tục làm việc với ngôn ngữ C đơn giản. Không biết trang web chỉ mục đơn giản của CMocka. Bạn phải đi sâu vào trang web đó và API của công cụ để tìm thấy những gì bạn cần .. :) Ngoài ra, hãy kiểm tra this để có hướng dẫn nhỏ về việc sử dụng CMocka ...

Tôi hy vọng điều này sẽ giúp, có một ngày tốt đẹp ..:-)

Các vấn đề liên quan