SORU
25 Mart 2011, Cuma


Nasıl benim sunucu uygulaması JUnit kullanarak test etmek için

Bir web sistemi java sunucu uygulamalarını kullanarak oluşturdum. şimdi bazı JUNİT test yapmak için söylendi!

Ben gerçekten junit testleri ile bir sunucu uygulaması denemek istiyorsunuz nasıl bir ipucu var, bazı biri bana bir test bir örnek verebilir misiniz?

Bu Ajax ile benim ana sayfasından gönderilen bu bir kullanıcı kaydetmek sağlayan kodum, bir exmaple

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{

        //get params
        String userName=request.getParameter("username");
        String passwrd=request.getParameter("password");
        String name=request.getParameter("name");


        try {

            // Load the database driver
           Class.forName("com.mysql.jdbc.Driver");


            //pass reg details to datamanager       
            dataManager = new DataManager();
            //store result as string
            String result = dataManager.register(userName, passwrd, name);

            //set response to html   no cache
             response.setContentType("text/html");
             response.setHeader("Cache-Control", "no-cache");
             //send response with register result
             response.getWriter().write(result);

           }catch(Exception e){
               System.out.println("Exception is ;" e);
           }  

  }

Nasıl bu test hakkında gitmek istiyorsunuz? junit ile? benim datamanager veritabanı sunar Bu kod sadece temel bir parçasıdır!

CEVAP
17 Mayıs 2011, Salı


Seni kullanarak bunu yapabilirsiniz Mockito için sahte dönüş doğru parametreler, kontrol edildi aslında adı (isteğe bağlı olarak belirtmek sayısı), yazma 'neden' ve doğrulamak doğru.

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.io.*;
import javax.servlet.http.*;
import org.apache.commons.io.FileUtils;
import org.junit.Test;

public class TestMyServlet extends Mockito{

    @Test
    public void testServlet() throws Exception {
        HttpServletRequest request = mock(HttpServletRequest.class);       
        HttpServletResponse response = mock(HttpServletResponse.class);    

        when(request.getParameter("username")).thenReturn("me");
        when(request.getParameter("password")).thenReturn("secret");
        PrintWriter writer = new PrintWriter("somefile.txt");
        when(response.getWriter()).thenReturn(writer);

        new MyServlet().doPost(request, response);

        verify(request, atLeast(1)).getParameter("username"); // only if you want to verify username was called...
        writer.flush(); // it may not have been flushed yet...
        assertTrue(FileUtils.readFileToString(new File("somefile.txt"), "UTF-8")
                   .contains("My Expected String"));
    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • John Lynn

    John Lynn

    8 Ocak 2010
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012
  • WK

    WK

    9 Ocak 2006