目录
- EXPECT_CALL
EXPECT_CALL
EXPECT_CALL(mock_object,method_name(matchers...))
创建一个mock对象mock_object,这个对象有一个名为method_name的方法,方法的参数为matchers…。
EXPECT_CALL必须在任何mock对象之前使用。
以下方法的调用,必须按以下顺序进行:
EXPECT_CALL(mock_object, method_name(matchers...)).With(multi_argument_matcher) // Can be used at most once.Times(cardinality) // Can be used at most once.InSequence(sequences...) // Can be used any number of times.After(expectations...) // Can be used any number of times.WillOnce(action) // Can be used any number of times.WillRepeatedly(action) // Can be used at most once.RetiresOnSaturation(); // Can be used at most once
详细说明:
- With(multi_argument_matcher)
- Times(cardinality):mock函数期望被调用的次数
- cardinality参数为以下值:
- AnyNumber():任意次
- AtLeast(n):至少n次
- AtMost(n):至多n次
- Between(m, n):m到n次之间
- Exactly(n) or n:n次,如果n为0则不被调用
- 如果Times没有调用,GoogleTest的处理规则如下:
- WillOnce和WillRepeatedly都没有指定,默认调用Times(1)
- 如果有n次WillOnce()但没有WillRepeatedly(),n>=1,cardinality为Times(n)
- 如果有n次WillOnce()和一次WillRepeatedly(),n>=0,cardinality为AtLeast(n)
- Times 最多只能被调用一次
- cardinality参数为以下值:
- InSequence