2012-02-13 22 views
5

Tôi muốn thực hiện một số thử nghiệm đơn vị C/C++ rất đơn giản cho một chức năng được cho là để nén hoặc giải nén một số dữ liệu.Làm thế nào để thực hiện kiểm tra đơn vị cho một hàm C đơn giản trả về dữ liệu nhị phân?

Chủ yếu là đầu vào là khối nhị phân và đầu ra cũng là khối nhị phân. Các khối nhị phân phải nhỏ hơn 50 byte, có thể có 5-6 cặp.

Tôi đang tìm một giải pháp tốt nhất là không yêu cầu thư viện của bên thứ ba. Nếu nó đòi hỏi cái này nên rất nhỏ/đơn giản.

+0

Không rõ liệu các thư viện của bên thứ ba được tham chiếu có giúp thực hiện các bài kiểm tra đơn vị hay cung cấp cùng một chức năng (để được kiểm tra chống lại chúng hay không). Bạn có thể chính xác không? –

+2

không thể giúp được: sorin 6,666 (ác quỷ)! – INS

+0

không phải bất kỳ chi tiết nào, bây giờ tôi ở trên ma quỷ;) – sorin

Trả lời

1

"Tôi đang tìm giải pháp không yêu cầu thư viện của bên thứ ba".

Chỉ cần viết hàm kiểm tra đơn vị, thật dễ dàng: Tạo hàm sẽ gọi hàm test-to-testet với các đối số khác nhau và so sánh kết quả với kết quả mong đợi. Thêm một hàm con trỏ vào hàm kiểm thử đó vào một mảng con trỏ hàm toàn cục, trong đó bạn lưu trữ tất cả các hàm thử nghiệm để bạn có thể chạy tất cả chúng theo yêu cầu.

1

Bằng cách nào đó bạn cần phải xác nhận chức năng của bạn và các giải pháp duy nhất mà tôi có thể nghĩ đến là:

  • sử dụng một số thư viện của bên thứ 3 (được biết đến để làm việc trong thực tế)
  • sử dụng một số chuỗi dữ liệu mà bạn biết chính xác đầu ra sẽ trông như thế nào
+0

Sử dụng thư viện của bên thứ ba được biết đến để làm việc trong thực tế chỉ hữu ích để tạo tập dữ liệu, trừ khi bạn dự định thực hiện thử nghiệm mờ (nhưng điều này hơi khác một chút vì kết quả là thường không thể tái tạo). –

0

Có hai loại kiểm tra đơn vị mà tôi có thể nghĩ đến. 1. Để kiểm tra xem đầu ra có đúng hay không. Đối với điều này bạn có thể thử với đầu vào mà đầu ra được biết đến. Trong mã đơn vị bạn có thể so sánh đầu ra từ phương thức với đầu ra đã biết. 2. Để kiểm tra các hồi quy một mình. Tôi đã sử dụng các loại thử nghiệm này trong một số loại mã nguồn cũ. Ở đây các hàm của bạn được chứng minh bằng cách nào đó (có thể được thử nghiệm với các phương tiện khác). Nhưng, khi ai đó thực hiện một số thay đổi đối với mã này, bạn cần đảm bảo rằng đầu ra chính không bị hỏng. Đối với điều này, bạn có thể gọi phương thức trong một công cụ cụ thể, nơi bạn đã chắc chắn rằng hàm hoạt động tốt và nắm bắt đầu ra này là đường cơ sở. Sau đó bạn có thể viết một trình điều khiển thử nghiệm đơn vị để gọi phương thức và so sánh đầu ra với đầu ra cơ sở trong tất cả các bản dựng sau này. Nhưng bạn cần phải nhớ cập nhật đường cơ sở khi chức năng được sửa đổi cố ý để sửa đổi đầu ra sau này.

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