我正在运行测试以查看电子邮件是否有效 - 与其他用户在应用程序中未使用时一样有效。
我想显示何时输入有效的电子邮件,断言为真正的保留,以及输入无效的电子邮件时,断言为false。
我的代码如下:
class UserControllerIntegrationTests extends GroovyTestCase{
@Before
void setUp() {
// Setup logic here
}
@After
void tearDown() {
// Tear down logic here
}
@Test
void testValidateEmail() {
def userController = new UserController()
userController.params.email = "ddewdd@a.com"
userController.validateEmail()
assertEquals "true", userController.response.contentAsString
userController.params.email = "a@a.com"
userController.validateEmail()
assertEquals "false", userController.response.contentAsString
}
}
我的控制器中的validateEmail()
看起来像是:
def validateEmail()
{
def valid = false
if(params.email != null && params.email != "")
{
//count how many users have this email - ignore case
if (User.countByEmailIlike(params.email) == 0)
{
valid = true
}
}
render valid
}
但是我收到如下错误:
Failure: testValidateEmail(uk.co.litecollab.UserControllerIntegrationTests)
org.junit.ComparisonFailure: expected:<[]false> but was:<[true]false>
at org.junit.Assert.assertEquals(Assert.java:125)
at org.junit.Assert.assertEquals(Assert.java:147)
at uk.co.litecollab.UserControllerIntegrationTests.testValidateEmail(UserControllerIntegrationTests.groovy:36)
似乎在第二个断言上失败了
当我单独运行两个断言时,它们都通过了,所以我知道断言语句中的数据是正确的。
我做错了什么?