我想模拟返回void的函数:
class FileDownloaderMock : public FileDownloader
{
public:
MOCK_CONST_METHOD1(downloadFile,
void(data *data_ptr));
};
在测试用例中,我想调用这个函数2次,第一次应该会抛出一个异常,第二次应该会正常工作。所以我的测试用例看起来像这样,但是它不起作用。
TEST_F(BCtrlTargetBdDownloaderTests, DownloaderShouldCorrectlyDownloadTargetBdInFirstAttempt)
{
EXPECT_CALL(m_fileDownloader, downloadFile( DataReqMatcher(l_expectedReq) ) ).Times(2)
.WillOnce(Throw(UpgradeException("Download failed") ));
}
控制台输出:
在EXPECT_CALL(m_fileDownloader, downloadFile(DataReqMatcher(l_expectedReq)))中指定的操作太少...期望调用两次,但只有1个WillOnce()。
那么我该如何解决这个问题呢? 最好的祝福