如何重复模拟相同的功能并检查每个调用中的参数?

时间:2017-09-19 13:18:03

标签: c++ googletest

我有一个函数,它要求一个方法(一个不同于被测函数的函数)被模拟8次。它有2个参数。

让我说我在嘲笑一个函数 - void func(const char * a,const char * b) 此函数func在被测函数内调用8次。

如何编写gtest来顺序模拟8个调用,并通过检查每个调用的参数对被测函数进行单元测试。对于此示例,我想验证所有8个调用中的值a和b并通过测试。每次调用所有八个调用时都使用不同的参数。请帮助我。

1 个答案:

答案 0 :(得分:1)

它隐藏在这里的文档中:https://github.com/google/googletest/blob/master/googlemock/docs/CookBook.md#knowing-when-to-expect

  

EXPECT_CALL不仅定义了行为,还设置了一个期望,即在给定次数的情况下使用给定的参数调用方法(并且在指定顺序时也按照给定的顺序)。

所以只需按正确的顺序设置8个EXPECT_CALL的调用,并为每个调用设置预期的参数。