集成测试一个测试用例中的所有可能性

时间:2013-04-25 10:23:02

标签: grails integration-testing assert

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

我想显示何时输入有效的电子邮件,断言为真正的保留,以及输入无效的电子邮件时,断言为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)

似乎在第二个断言上失败了

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

我做错了什么?

0 个答案:

没有答案