GUI的单元测试

时间:2016-01-04 01:27:21

标签: java jsp unit-testing testing tdd

我刚刚开始研究单元测试,并希望在我的网页上实现它(使用JPA,JSP和MySQL)。 我可以理解如何使用JUnit来测试简单的事情,比如从数据库中检索用户信息,但是当用户名字段为空时,无法理解如何自动测试登录失败等问题。

1 个答案:

答案 0 :(得分:0)

如果您想进行单元测试,那么您应该确定要测试的单元。假设您有一个带有登录方法的SecurityService,该方法接受用户名和密码并返回一个布尔值,指示用户是否登录。然后你可以传入null来让用户测试它返回false。

如果您有一些不允许用户在用户名为空白时单击提交的JavaScript,那么您将为该部分编写某种javascript单元测试,因为它是一个不同的单元。

尝试用我发现的java编写可测试的Web应用程序时,最重要的是确保在表示层代码中只有很少的逻辑。当用户点击您正在立即发送内容的按钮时,请确保"服务"做某种工作。这样,您就可以独立于表示层测试服务。

这是我提到的SecurityService测试的代码示例。

public class SecurityService
{
    public boolean login(String username, String password)
    {
        //Put your logic here
        return false;
    }
}

这是junit测试

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class SecurityServiceTest
{
    private SecurityService securityService;

    @Before
    public void setUp()
    {
        securityService = new SecurityService();
        //Mock any database access you need here, like DAOs.
        //example: securityService.setUserDAO(myMockUserDAO);
    }

    @Test
    public void loginWithNull_False()
    {
        assertFalse(securityService.login(null, "123"));
    }
}