2010-03-11 31 views
9

Gần đây tôi đã quay lại C/C++ sau nhiều năm của C#. Trong những năm đó tôi đã tìm thấy giá trị của thử nghiệm Mocking và Unit.C++ Mock/Kiểm tra tăng cường :: asio :: io_stream - based Asynch Handler

Tìm tài nguyên cho thử nghiệm Mocks và đơn vị trong C# là không đáng kể. WRT Mocking, không quá nhiều với C++.

Tôi muốn một số hướng dẫn về những việc người khác làm để thử nghiệm và kiểm tra trình xử lý Asynch io_service với tăng cường.

Ví dụ: trong C# tôi sẽ sử dụng MemoryStream để giả lập IO.Stream và giả sử đây là đường dẫn tôi nên thực hiện tại đây.

  • C++ Mock/Kiểm tra thực hành tốt nhất
  • boost :: ASIO :: io_service thực hành tốt nhất Mock/Kiểm tra
  • C++ Async Handler Mock/Kiểm tra thực hành tốt nhất

Tôi đã bắt đầu quá trình này với googlemock và googletest.

Trả lời

6

Như bạn có thể đã tìm thấy, có rất ít sự trợ giúp để chế nhạo trong C++ hơn trong C# hoặc Java. Cá nhân tôi có xu hướng viết mocks của riêng tôi và khi tôi cần chúng hơn là sử dụng một khuôn khổ. Vì hầu hết các thiết kế của tôi có xu hướng nặng trên các giao diện, điều này không phải là đặc biệt khó khăn đối với tôi và tôi có xu hướng xây dựng một 'thư viện giả' đi kèm với mã mà tôi đang phát triển. Một ví dụ về cách tôi làm việc có thể được tìm thấy here trong bài viết 'Thử nghiệm thực tế' của tôi. Cuối cùng nó không phải là khác nhau để chế giễu và thử nghiệm trong C#, tất cả các nguyên tắc tương tự áp dụng, bạn chỉ cần kết thúc làm nhiều việc nâng nặng mình.

+0

Điều này thực sự hữu ích. Nó đi một chặng đường dài để trả lời viên đạn đầu tiên của tôi. Tôi đã hy vọng cho một số hướng dẫn trực tiếp về cách tốt nhất để thử/thử nghiệm I/O không đồng bộ bằng cách sử dụng boost :: asio :: io_service. – rbellamy

+0

Xin lỗi, tôi không sử dụng ASIO, tôi có khuôn khổ I/O không đồng bộ của riêng mình. –

+2

cũng có, hãy xem Làm việc hiệu quả với Mã kế thừa của Michael Feathers. Tôi thấy rằng đó là một nguồn tốt, và rất hữu ích để giúp xác định đường nối và thiết lập Mocks của riêng bạn. – Tim

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