0

我正在运行测试以查看电子邮件是否有效 - 有效,因为其他用户未在应用程序中使用。

我想显示何时输入有效的电子邮件,断言真正的保留,以及当输入无效的电子邮件时,断言错误的保留。

我的代码如下:

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)

第二个断言似乎失败了

当我单独运行这两个断言时,它们都通过了,所以我知道断言语句中的数据是正确的。

我究竟做错了什么?

4

0 回答 0