Before
A @Before method is executed for each test.T
/**
* Before method - exectuted before each test.
*
* JUnit creates a new instance for each test it runs.
*/
package com.minte9.junit.annotations;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
public class BeforeApp {
private Squares squares;
@Before public void executedBeforeEach() { // Look Here
squares = new Squares();
squares.add(3); // 9
squares.add(5); // 25
System.out.println("Squares initialized!"); // executed twice
// Squares initialized!
// Squares initialized!
}
@Test public void average() {
assertEquals(squares.average(), 17); // passed
}
@Test public void sum() {
assertEquals(squares.sum(), 34); // passed
}
}
class Squares {
private List<Integer> squares = new ArrayList<>();
public void add(int x) {
squares.add(x * x);
}
public int average() {
return sum() / squares.size();
}
public int sum() {
return squares.stream().mapToInt(Integer::intValue).sum();
}
}
Before Class
Static method @BeforeClass is executed once before all tests.T
/**
* BeforeClass method - executed once before all tests.
*
* JUnit creates a new instance for each test it runs.
*/
package com.minte9.junit.annotations;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
public class BeforeClassApp {
private static SQ squares;
@BeforeClass static public void executedBeforeOnce() { // Look Here
squares = new SQ();
squares.add(3); // 9
squares.add(5); // 25
System.out.println("Squares initialized!"); // executed once
// Squares initialized!
}
@Test public void average() {
assertEquals(squares.average(), 17); // passed
}
@Test public void sum() {
assertEquals(squares.sum(), 34); // passed
}
}
class SQ {
private List<Integer> squares = new ArrayList<>();
public void add(int x) {
squares.add(x * x);
}
public int average() {
return sum() / squares.size();
}
public int sum() {
return squares.stream().mapToInt(Integer::intValue).sum();
}
}
After
An @After method runs after every test method.T
/**
* After method - exectuted after each test.
*
* JUnit creates a new instance for each test it runs.
*/
package com.minte9.junit.annotations;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class AfterApp {
@Before public void start() {
System.out.println("Db connection start");
}
@Test public void run() {
System.out.println("App run test");
}
@After public void end() {
System.out.println("Db connection close");
}
/*
Db connection start
App run test
Db connection close
*/
}
class App {}
Last update: 328 days ago