2011-07-20 35 views

Trả lời

7

Gần đây tôi đã thực hiện tìm kiếm thử nghiệm đơn vị và khung mocking cho dự án mới nhất của tôi và đi với Google Mock. Nó có tài liệu tốt nhất và có vẻ khá nổi bật (mặc dù tôi chưa tạo ra các đối tượng giả rất phức tạp). Ban đầu, tôi đã nghĩ đến việc sử dụng boost::test nhưng kết thúc bằng cách sử dụng Google Test thay vào đó (tôi nghĩ đó là điều kiện tiên quyết cho Google Mock, ngay cả khi bạn sử dụng một khung kiểm tra khác). Nó cũng có tài liệu tốt và đã có hầu hết các tính năng tôi mong đợi.

2

GoogleMock có phần sử dụng với another framework.

+0

Thật vậy, nhưng nó vẫn dễ bị rò rỉ bộ nhớ và yêu cầu cách giải quyết: http://stackoverflow.com/questions/38890959/initgooglemock-causes-memory-leak-with-boosttest?noredirect=1#comment65142935_38890959 – Ioanna

6

Bạn có thể thử Turtle!

+0

lợi thế cho Rùa? –

+0

Vâng, nó dễ dàng tích hợp với boost :: test: bạn sẽ không cần tất cả các giải pháp được yêu cầu để thực hiện một tăng :: thử nghiệm dự án sử dụng gmock, ví dụ (xem thêm http://stackoverflow.com/questions/38890959/initgooglemock-nguyên nhân-bộ nhớ-bị rò rỉ-với-boosttest? noredirect = 1 # comment65142935_38890959). – Ioanna

6

Here bạn đã có ví dụ về cách sử dụng Google Mock với Kiểm tra tăng cường. Tôi thích Boost Test vì tôi thường sử dụng Boost libraries khác.

7

Fake-It là khung công tác mô phỏng đơn giản cho C++ sử dụng các tính năng C++ 11 mới nhất để tạo API biểu cảm (nhưng rất đơn giản). Với FakeIt, không cần phải khai báo lại các phương thức cũng như không tạo ra một lớp dẫn xuất cho mỗi mô hình và nó có tích hợp tích hợp kiểm thử tăng cường ::. Đây là cách bạn giả mạo:

struct SomeInterface { 
    virtual int foo(int) = 0; 
}; 

// That's all you have to do to create a mock. 
Mock<SomeInterface> mock; 

// Stub method mock.foo(any argument) to return 1. 
When(Method(mock,foo)).Return(1); 

// Fetch the SomeInterface instance from the mock. 
SomeInterface &i = mock.get(); 

// Will print "1" 
cout << i.foo(10); 

Có nhiều tính năng khác để khám phá. Tiếp tục và give it a try.

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