我正在运行测试以查看电子邮件是否有效 - 有效,因为其他用户未在应用程序中使用。
我想显示何时输入有效的电子邮件,断言真正的保留,以及当输入无效的电子邮件时,断言错误的保留。
我的代码如下:
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)
第二个断言似乎失败了
当我单独运行这两个断言时,它们都通过了,所以我知道断言语句中的数据是正确的。
我究竟做错了什么?