TestingDocs.com
Software Testing website
  • Automation
    • Selenium
    • JBehave Framework
  • Tutorials
    • MySQL Tutorials
    • Testlink
    • Maven
    • Git
  • IDEs
    • IntelliJ IDEA
    • Eclipse
  • Flowcharts
    • Flowgorithm
    • Raptor
  • About

JUnit

Differences between JUnit 3 and JUnit 4

JUnit Tutorial

Introduction

In this post, we will discuss some of the differences between JUnit 3 and JUnit 4. The most important difference is that in JUnit 3, we need to extend TestCase (junit.framework.TestCase) to write junit tests. Every method which has the test code in it, should start with testXXXX method.

Sample JUnit 3 Listing:

package com.testingdocs.junit;

import junit.framework.TestCase;

/**
* A Sample JUnit3 testcase
*/

/**
* @author testingdocs
*/
public class SampleJUnit3TestCase extends TestCase {

/**
* @param name
*/
public SampleJUnit3TestCase(String name) {
super(name);
}

/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}

/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}

public void testMethod() {
System.out.println("Test method 1");
assertTrue(1 == 1);
}

}

JUnit 4

test prefix methods

If you don’t start test methods with a conventional test**** prefix junit will throw an error
something like “No tests found in the suite.”

If there are no testXXX prefix methods in the test suite, then you will get this error.

junit.framework.AssertionFailedError: No tests found in com.testingdocs.junit.SampleJUnit3TestCase
at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.TestCase.fail(TestCase.java:227)
at junit.framework.TestSuite$1.runTest(TestSuite.java:97)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)

 

Annotations in JUnit4

Another notable difference is that, JUnit 4 introduced annotation support. JUnit 4 introduced annotations like @Test, @BeforeClass, @AfterClass, @Before, @After ,@Ignore etc.

JUnit 4 Listing:

package com.testingdocs.junit;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * A sample JUnit4 Test demo
 * class
 */

/**
 * @author testingdocs
 *
 */
public class JUnit4TestClass {

 /**
 * @throws java.lang.Exception
 */
 
 @BeforeClass
 public static void oneTimeSetUp() throws Exception {
 System.out.println("@BeforeClass annotated method");
 }


 /**
 * @throws java.lang.Exception
 */
 @AfterClass
 public static void oneTimeTearDown() throws Exception {
 System.out.println("@AfterClass annotated method");
 }

 /**
 * @throws java.lang.Exception
 */
 @Before
 public void eachMethodFixtureSetUp() throws Exception {
 System.out.println("@Before annotated method");
 }

 /**
 * @throws java.lang.Exception
 */
 @After
 public void eachMethodFixtureTearDown() throws Exception {
 System.out.println("@After annotated method");
 }

 @Test
 public void firstTestMethod() {
 System.out.println("Test method");
 fail("Not yet implemented1");
 }

}

 

JUnit Tutorial on this website can be found at:

https://www.testingdocs.com/junit-tutorial/

More information on JUnit official website:

https://junit.org

Related Posts

Getting Started with JUnit Framework

JUnit /

Getting Started with JUnit Framework

Run JUnit tests from command line

JUnit /

Run JUnit tests from command line

Working with JUnit in Eclipse IDE

JUnit /

Working with JUnit in Eclipse IDE

Adding JUnit5 library to a Project

JUnit /

Adding JUnit5 library to a Project

Test Failure JUnit

JUnit /

Debug JUnit Tests using IDE

‹ @Ignore annotation in JUnit› Testing exceptions in JUnit

Recent Posts

  • MS Access Data Types
  • Install RAPTOR Avalonia on CentOS
  • Download RAPTOR Avalonia Edition on Windows
  • npm doctor command
  • Build & Run CLion Project
  • Create New CLion C Project on Windows
  • Configure CLion Toolchains on Windows
  • Launch CLion IDE on Windows
  • Activate CLion IDE
  • CLion IDE for C/C++ Development

Back to Top

Links

  • Contact
  • Privacy Policy
  • Cookie Policy

www.TestingDocs.com

Go to mobile version