2013-06-17 56 views
7

Câu hỏi câm: bạn sử dụng khung kiểm thử đơn vị nào để phát triển nhúng? Có một câu hỏi về các khung kiểm tra đơn vị cho C, nhưng nó đã cũ và không được định hướng nhúng.Thử nghiệm đơn vị để phát triển C nhúng

+0

bạn không thể sử dụng C++ (và một khuôn khổ C++ đơn vị kiểm nghiệm hiện đại) trong các thử nghiệm của bạn? Mã sản xuất của bạn sẽ vẫn là C, nhưng các thử nghiệm sẽ có trong C++. – pts

+0

Nhúng là một khái niệm rất rộng: C trên 2KB ATTiny được phát triển nhúng. C trên một Cortex A9 với RAM 1GB và 1GB flash vẫn được nhúng phát triển. Bạn nên cho chúng tôi biết bộ xử lý và RAM mục tiêu của bạn là gì. –

+0

AVR là tối thiểu (ATMega256RFR2), sau đó là một nền tảng khác. – Penguinolog

Trả lời

7

Nếu tôi chỉ lấy phần này của câu hỏi của bạn: Bạn sử dụng khung kiểm tra đơn vị nào để phát triển nhúng?, sau đó tôi trả lời Google Test. Nó đòi hỏi một trình biên dịch C++ - tương thích, nhưng phù hợp để kiểm tra mã C.

Chúng tôi sử dụng nó cho tất cả phát triển nhúng: TI C67x DSP (mã sản xuất là 100% C, chúng tôi chỉ sử dụng C++ cho gtest), VxWorks trên x86 và Linux trên ARM.

Chỉnh sửa: Bạn đã viết trong nhận xét rằng nền tảng của bạn là ATMega. Tôi không nghĩ rằng gtest sẽ phù hợp trong một MCU 8 bit, thậm chí là một lớn. Bạn có thể có hai giải pháp:

  • Nếu bạn có nhiều mã độc lập với phần cứng MCU, bạn có thể thử mã này trên máy tính, chế nhạo (ví dụ: mô phỏng) các phần liên quan đến phần cứng. Giải pháp này sẽ chỉ thực hiện các bài kiểm tra đơn vị (không phải kiểm thử tích hợp), yêu cầu mã của bạn phải có một biên giới rõ ràng giữa những gì liên quan chặt chẽ với phần cứng và ... (
  • Hãy thử một khung kiểm thử được thiết kế rõ ràng cho MCU. µCUnit tài liệu có vẻ rõ ràng, tôi chưa bao giờ thử nó ... nó có thể đáng để thử.
+0

Có, nó có liên quan, nhưng nó cũ - một số phí cầu đường trông giống như ở trạng thái không hoạt động, hoặc ngược lại vẫn không ổn định. – Penguinolog

+0

Bạn là sự thật, nó là khá cũ. –