我正在测试使用具有函数 foo 的接口。这是我在我的模拟中对这个函数的实现:
class Mock
{
public:
void foo(Foo::const_iterator begin, Foo::const_iterator end) {
_begin = begin;
_end = end;
...
}
...
Foo::const_iterator _begin;
Foo::const_iterator _end;
};
然后我有一个测试来检查 foo 是否被调用:
// test that function foo is not called
EXPECT_EQ(mock->_begin, Foo::const_iterator());
但这在 Visual Studio 中给了我一个断言,声称迭代器不兼容。如果我没有调用 foo(),我会期望 _begin 将等于 Foo::const_iterator()。为什么不是?