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