标题可能不太清楚。我记得以下例子:
Authenticator对象使用凭据对用户进行身份验证。它返回一个AuthResult对象。此AuthResult对象表示身份验证成功,或者失败(如果是,为什么失败,例如用户名未找到)。
我怎样才能在测试中说出这个? 'testShouldReturnAuthObjectWithStatusSuccessOnValidLogin'?
答案 0 :(得分:5)
testValidLoginIsSuccessful 或 testIsSuccessfulOnValidLogin 对我来说似乎已经足够了。
对于错误测试,您可以使用类似 testGetsCustomMessageOnUserNotFound
的内容您应该避免将实现细节放在方法名称中。
答案 1 :(得分:2)
在没有看到如何实施这些测试的情况下,从命名看来,观察结果是过度的。
如果此测试失败,您将不得不进行一些挖掘以了解它是否是因为(a)没有返回AuthResult对象,或者(b)状态不是“成功”,而且,是否没有AuthResult因为Authenticator从未连接到数据库或执行其他必要的操作?
我将夹具命名为When_told_to_authenticate_with_valid_credentials,然后将断言分成两个不同的观察点:
1. should_return_an_AuthResult
2. should_be_successful
如果你像Samuel正确建议的那样嘲笑那些其他课程,你可以进一步规定认证者的行为符合你的期望:
3. should_connect_to_the_database
4. 等。