Tôi có một lớp học mà phải mất một boolean như một tham số tài liệu tham khảo và trả về một số nguyên:Google mock ByRef phương pháp
class Foo
{
public:
Bar my_bar;
virtual int myMethod(bool &my_boolean) = 0;
}
/*...*/
int Foo::myMethod(bool &my_boolean){
if (my_bar == NULL){
my_boolean = false;
return -1;
}
else{
my_boolean = true;
return 0;
}
}
Và tôi đã tạo ra một mô hình cho lớp này:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Tôi có vấn đề về cách đặt kỳ vọng cho loại hàm này, vì tôi cần đặt giá trị trả về và tham số tham chiếu cho giá trị cụ thể để tạo thử nghiệm đơn vị đúng cách. Làm cách nào để xử lý loại hàm này với gmock? Tôi đã thử theo những gì tôi đã nghĩ làm giải pháp trên tài liệu:
using ::testing::SetArgPointee;
class MockMutator : public Mutator {
public:
MOCK_METHOD2(Mutate, void(bool mutate, int* value));
...
};
...
MockMutator mutator;
EXPECT_CALL(mutator, Mutate(true, _))
.WillOnce(SetArgPointee<1>(5));
Nhưng tôi không hiểu ví dụ hoặc không áp dụng cho trường hợp này. Có ai đã giải quyết tình huống này trước đây không?
Xin cảm ơn trước.
Sau đó, tôi không nhận được câu hỏi của bạn là gì. Bạn có thể giải quyết vấn đề của mình không? Mã này có vẻ đúng cho tôi. Hoặc bạn có muốn biết cách đặt kỳ vọng cho thông số tham chiếu tương tự không? 'ByRef()' sẽ hoàn toàn OK cho điều này. –
+1 khó có thể lấy từ ví dụ về sách nấu ăn. –