google 模拟 EXPECT_CALL return 值
google mock EXPECT_CALL return value
我在 C 中有以下代码想使用 google 测试框架进行测试:
a.h
void getValue(int age, int * value);
a.c
#include <a.h>
void getValue(int age, int * value)
{
value[0] = 0;
value[1] = 1;
}
b.c
#include <a.h>
void formValue()
{
int value[2];
getValue(age, value);
/* the code to handle the value[] array */
/* for() */
}
我想测试文件 b
中的函数 void formValue()
,所以我为 void getValue(int age, int * value)
创建了以下模拟:
// AFileMock.hh
#包括
#include "a.h"
class AFileMock {
public:
AFileMock();
~AFileMock();
MOCK_METHOD1(getValue, void(int, int *));
};
然后在测试文件中我想调用模拟函数 getValue
和 return void getValue(int age, int * value)
部分的值,但是如何 return 出来调用模拟函数时 value array
的参数?
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <b.h>
#include <AFileMock.h>
using testing::_;
using testing::Return;
using testing::InSequence;
class BTest: public testing::Test {
protected:
AFileMock aFile;
public:
void SetUp() { }
void TearDown() { }
};
TEST_F(BTest, test1)
{
InSequence sequence;
EXPECT_CALL(aFile, getValue(_, _)).
Times(1); // when this mock function is called, how to return the value of the array?
formValue();
}
那么在这种情况下,调用mock函数时,如何return数组的值呢?
我在 C 中有以下代码想使用 google 测试框架进行测试:
a.h
void getValue(int age, int * value);
a.c
#include <a.h>
void getValue(int age, int * value)
{
value[0] = 0;
value[1] = 1;
}
b.c
#include <a.h>
void formValue()
{
int value[2];
getValue(age, value);
/* the code to handle the value[] array */
/* for() */
}
我想测试文件 b
中的函数 void formValue()
,所以我为 void getValue(int age, int * value)
创建了以下模拟:
// AFileMock.hh
#包括
#include "a.h"
class AFileMock {
public:
AFileMock();
~AFileMock();
MOCK_METHOD1(getValue, void(int, int *));
};
然后在测试文件中我想调用模拟函数 getValue
和 return void getValue(int age, int * value)
部分的值,但是如何 return 出来调用模拟函数时 value array
的参数?
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <b.h>
#include <AFileMock.h>
using testing::_;
using testing::Return;
using testing::InSequence;
class BTest: public testing::Test {
protected:
AFileMock aFile;
public:
void SetUp() { }
void TearDown() { }
};
TEST_F(BTest, test1)
{
InSequence sequence;
EXPECT_CALL(aFile, getValue(_, _)).
Times(1); // when this mock function is called, how to return the value of the array?
formValue();
}
那么在这种情况下,调用mock函数时,如何return数组的值呢?