<jboss-web>
<context-root>/</context-root>
<security-domain>cert-login</security-domain>
</jboss-web>
函数是否成功,而不知道给定的前提条件。 <security-constraint>
<web-resource-collection>
<web-resource-name>Cert Login Page</web-resource-name>
<url-pattern>/cert/detect</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>certuser</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
<security-role>
<role-name>certuser</role-name>
</security-role>
上述任何一项都应该有效或低于预期,但只有其中一项。
execute()
答案 0 :(得分:1)
您期望的内容是一个(且只有一个)协作者已被调用。
一个可行的解决方案(如other languages中所示)是让这些模拟增加测试范围中的共享计数器。
您可以通过defining actions使用GoogleMock实现此目的。它会是这样的:
SuccessMock successMock;
FailMock failMock;
int callCounter = 0;
ON_CALL(successMock, performOnSuccess())
.WillByDefault(InvokeWithoutArgs([&]()
{
callCounter++;
});
ON_CALL(failMock, performOnFailure())
.WillByDefault(InvokeWithoutArgs([&]()
{
callsCounter++;
});
execute(successMock, failMock);
ASSERT_THAT(callsCounter, Eq(1));
话虽如此,这个测试中有一些我不喜欢的随机性。你应该最终得到一个期待失败的测试,另一个期待成功。
我为此写了一个简化的gist。