JUnit Tutorial

junit tutorials

JUnit is the most famous unit test framework in Java. However it is only suitable for pure unit testing, for integration test, you should go for TestNG instead.

Happy learn JUnit :)

JUnit 4.x Tutorials

JUnit Vs TestNG

Tags :

About the Author

mkyong
Founder of Mkyong.com and HostingCompass.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

  • Pingback: Blue Coaster33()

  • Anant

    Hi, can you please explain all the methods like as setUp() & tearDown(),
    means what are the significance of these method and how to be use using spring?

  • Mohit

    For more tutorials on features like Categories, test suites, hamcrest and recommended junit books, read : JUnit tutorials

  • http://www.railpnr.in P singh

    can you tell me how to embed multiple test case in one file
    i means can we write two test() function in one file to test two different function.
    thanks

  • http://www.railpnr.in P singh

    can you tell me how to embed multi test case in one file
    i means can we write two test() function in one file to test two different function.
    thanks

  • my Test

    Minimalist and useful
    Thank you

  • sruthi

    i need to display message in jsp from servlets.but im getting null value after loading jsp page..can i please get the solution for this

  • Sumesh

    This tutorial is really nice. But if you want to overcome some of the major limitations of junit 3 and junit 4 have a look at the below mentioned link which tells how to use effectively use junit for functional testing.
    http://apitestingwithjunit.blogspot.in/

  • Sujeesh

    These tutorials are really helpful. Thank you Mkyong.

  • nityananda

    please provide tapestry tutorial…..soon.

  • Ravi Kant Soni

    hi Monk, here is the here which i am getting while UNIT Test for “https” url.
    Plz help me as soon as possible.

    SSLUnsubscribes exception…..

  • http://mkyong.com bijay kumar

    hi mkyong,
    plz provide Tapestry & Adobe Flex tutorial….

  • http://mkyong.com bijay kumar

    hi mkyong,
    plz provide Tapestry tutorial….

  • srinivas

    hi can anybody help me on an issue with XMLParameterizedRunner in JUnit4.8
    i am getting the following error

    java.lang.NoSuchMethodError: org.junit.internal.runners.MethodValidator.(Ljava/lang/Class;)V
    at org.junit.internal.runners.TestClassRunner.(TestClassRunner.java:26)
    at org.junitext.runners.XMLParameterizedRunner.(Unknown Source)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.(JUnit4TestReference.java:32)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.(JUnit4TestClassReference.java:25)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    and the java code is

     package concurrent;
    import java.net.URL;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junitext.XMLParameters;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.junitext.runners.XMLParameterizedRunner;
    @RunWith(XMLParameterizedRunner.class)
    public class One_inTwo {
      public String browser1;
      @XMLParameters("/concurrent/One_inTwo1.xml")
      public One_inTwo(String browser1) {
         this.browser1=browser1;    
      }
      @Test 
      public void test() throws Exception {
        WebDriver driver;
        URL server = new URL("http://localhost:8081/wd/hub");
        DesiredCapabilities capabilities = null;
    		driver = new RemoteWebDriver(server, Common.getGridsettings(browser1, capabilities));
    		driver.get("http://google.com");
    		Thread.sleep(3000);
    		WebElement search_editbox   =   driver.findElement(By.name("q"));
    		WebElement search_button    =   driver.findElement(By.name("btnG"));
    		search_editbox.clear();
    		search_editbox.sendKeys("first");
    		search_button.click();
    	driver.quit();
     
      }
    }

    and the xml code is

    <?xml version="1.0" encoding="UTF-8" ?>
    <tests>
      <test>
         <string id="browser1" value="firefox" />
      </test>
      <test>
         <string id="browser1" value="IE" />
      </test>
    </tests>
  • Pingback: Links « andrzejsydor()

  • srini

    how to make the immutable class ? give me example?

    • Githin

      Make class Final.

      make data and methods too final and static.

      • Raman Kumar

        yes… use the final keyword before class name…

  • arthy

    Hi Yong, Could you provide some pointers for adding methods(not class level) to a test suite in JUNIT4..?

  • basha

    how can write test cases for the private method using junit test3.2

    • http://www.mkyong.com mkyong

      Unit test unable to test private method.

    • Angel

      It is possible to test private methods in your class by different ways. An alternative solution could be to use/implement Java Reflection API.Something like this :

      Method theMethod = targetClass.getDeclaredMethod(methodName, argClasses);
      theMethod.setAccessible(true);
      return theMethod.invoke(targetObject, argObjects);

      Or take a look at this http://code.google.com/p/powermock/wiki/BypassEncapsulation

      good luck:)

  • Pingback: Delicious Bookmarks for March 16th from 22:39 to 23:56 « Lâmôlabs()

  • Sky

    Thank you!

  • http://www.jackychan.com test

    nice