Java 控制器的单元测试

Java 控制器的单元测试,java,unit-testing,junit,controller,Java,Unit Testing,Junit,Controller,我有一个项目,现在我的任务是为控制器做一个单元测试。我试着从网上搜索一些教程, 这是来自控制器的方法这是我发现的: 1. 2. 上面的链接无法填满杯子。我是新来的单元测试,下面是一个来自控制器的方法 控制器: private boolean insertNewUser(字符串名称、字符串用户名、字符串密码、字符串电子邮件、字符串用户类型、, 字符串团队,字符串[]项目ID,HttpSession会话) { UsersDAO UsersDAO=新UsersDAO(); ArrayList项目=

我有一个项目,现在我的任务是为控制器做一个单元测试。我试着从网上搜索一些教程, 这是来自控制器的方法这是我发现的:

1.
2.

上面的链接无法填满杯子。我是新来的
单元测试
,下面是一个来自控制器的方法

控制器:

private boolean insertNewUser(字符串名称、字符串用户名、字符串密码、字符串电子邮件、字符串用户类型、,
字符串团队,字符串[]项目ID,HttpSession会话)
{
UsersDAO UsersDAO=新UsersDAO();
ArrayList项目=新建ArrayList();
布尔插入;
String sessionType=(String)session.getAttribute(SessionUtility.session\u TYPE);
if(sessionType.equalsIgnoreCase(SessionUtility.TYPE\u SUPERADMIN))
{
if(userType.equalsIgnoreCase(SessionUtility.TYPE_ADMIN)||
userType.equalsIgnoreCase(SessionUtility.TYPE\u SUPERADMIN))
{
if(projectid!=null)
{
for(int i=0;i
问题:如何对控制器进行单元测试?示例方法如上所示

如果您需要更多的澄清,请评论

更新:Easymock示例非常好

您可以使用并创建如下内容:

class ControllerTests extends grails.test.ControllerUnitTestCase {
void testInsert() {
    controller.params.query = "Insert Query";
    controller.insert();
    assertEquals ("expected result", controller.response.contentAsString);
}

}

您使用Spring的单元测试并创建如下内容():


你是在问如何使用junit还是单元测试应该是什么样子?我知道如何在控制器上使用junit,但我不知道该怎么做。请看我下面的帖子@newbie在使用grails之前是否需要设置?还是连接到数据库?我可以模拟conenction吗?我可以在隔离上测试控制器吗?单元测试的要点是,它应该在隔离上测试。如果您在@BeforeSessionUtility.TYPE_ADMIN标记的方法中初始化了所需的内容,那么我将如何模拟该请求?如果我没弄错的话,我真的应该嘲笑吗?对不起,我是新手。你可以用Mockito来模拟这些东西,或者你可以只提供虚拟值。或者你假设的价值观,或者它们应该是什么
class ControllerTests extends grails.test.ControllerUnitTestCase {
void testInsert() {
    controller.params.query = "Insert Query";
    controller.insert();
    assertEquals ("expected result", controller.response.contentAsString);
}
import static org.junit.Assert.*;

    @Before
    private void setUp(){
        //init variables here
    }

    @Test
    private boolean insertNewUser(){
//initialize this variables:

 String name, String username, String password, String email, String userType,
  String team, String[] projectid,HttpSession session ;

        String sessionType = ( String ) session.getAttribute( SessionUtility.SESSION_TYPE );
        assertEquals(sessionType, SessionUtility.TYPE_SUPERADMIN);
        assertEquals(userType, SessionUtility.TYPE_ADMIN);
        assertEquals(userType, SessionUtility.TYPE_SUPERADMIN);
        assertNotNull(projectId);

    }