1

私に引き継がれるプロジェクトがあります。今の私の仕事は、コントローラーの単体テストを作成することです。私はネットからいくつかのチュートリアルを検索しようとしました.これはコントローラからのメソッドです.これは私が見つけたものです

. -create-unit-tests-for-controllers
2. http://www.java-tutorial.ch/software-testing/easymock-tutorial

上記のリンクだけでは不十分です。Unit Testing以下は、コントローラーControllerからのメソッドです。


 private boolean insertNewUser( String name, String username, String password, String email, String userType,
                                   String team, String[] projectid,HttpSession session )
    {
        UsersDAO usersDAO = new UsersDAO();
        ArrayList<Integer> projects = new ArrayList<Integer>();
        boolean insert;

        String sessionType = ( String ) session.getAttribute( SessionUtility.SESSION_TYPE );
        if( sessionType.equalsIgnoreCase( SessionUtility.TYPE_SUPERADMIN ) )
        {
            if( userType.equalsIgnoreCase( SessionUtility.TYPE_ADMIN ) ||
                userType.equalsIgnoreCase( SessionUtility.TYPE_SUPERADMIN ) )
            {
                if( projectid != null )
                {
                    for( int i = 0; i < projectid.length; i++ )
                    {
                        projects.add( Integer.parseInt( projectid[i] ) );
                    }
                }
            }
            }
        if( !projects.contains( Integer.parseInt( ( String ) session.getAttribute( SessionUtility.SESSION_PROJECT ) ) ) )
        {
            projects.add( Integer.parseInt( ( String ) session.getAttribute( SessionUtility.SESSION_PROJECT ) ) );
        }
        insert = usersDAO.insertNewUser( name, username, password, email, userType, team, projects );

        return insert;

    }

質問:コントローラーの単体テストを作成するにはどうすればよいですか? 方法の例は上記です。

さらに明確にする必要がある場合は、コメントしてください。

更新: Easymockの例は素晴らしいでしょう

4

2 に答える 2

0

grails.test.ControllerUnitTestCaseを利用して、次のようなものを作成できます。

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

}

于 2013-07-22T07:17:25.243 に答える
0

Spring の単体テストを利用して、次のようなものを作成します ( http://static.springsource.org/spring-batch/reference/html/testing.html ):

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);

    }
于 2013-07-22T07:23:16.003 に答える