HippoMocks在未指定期望值时抛出NotImplementedException

HippoMocks throws NotImplementedException when not specifying expectation

本文关键字:NotImplementedException 期望值 未指定 HippoMocks      更新时间:2023-10-16

我正在研究对添加到现有代码中的单元测试使用mocking。为此,我使用了HippoMocks。这涉及到另一个类在我的mock上调用一些方法(这些方法都是虚拟的)。我想避免过度指定所有这些,但每当其他类在我的mock上调用我没有指定的函数时,HippoMocks就会不断抛出NotImplementedException

下面的代码暴露了我的问题。

void test()
{
class SimpleClassToMock
{
public:
virtual void memberFunction1() {}
virtual void memberFunction2() {}
};
MockRepository mocks;
// true or false here makes no difference.
mocks.autoExpect = true;
SimpleClassToMock* m = mocks.Mock<SimpleClassToMock>();
// I care about this function getting called.
mocks.ExpectCall(m, SimpleClassToMock::memberFunction1);
m->memberFunction1();
// HippoMocks fails on the next line by throwing NotImplementedException.
m->memberFunction2();
}

有什么方法可以告诉希波莫克不要在这里失败吗?我只想指定我关心的特定测试的期望值,而不是调用的每一件事。

PS:对于那些有嘲笑经历的人来说,我是不是认为这一切都错了?在这种情况下,过度指定测试不是问题/"你想要什么"吗?

为了避免过度指定,可以使用OnCall允许它们被调用0-N次(可选地使用参数检查、顺序检查等)。

相关文章:
  • 没有找到相关文章