Test Case
A
test case provides an example of
expected behavior.
T
package com.minte9.junit.test_case;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class CaseTest {
@Test public void mytest() {
Squares squares = new Squares();
squares.add(3);
squares.add(5);
int actual = squares.average();
int expected = 17;
assertEquals(actual, expected);
}
}
class Squares {
private List<Integer> squares = new ArrayList<>();
public void add(int x) {
squares.add(x * x);
}
public int average() {
int total = squares.stream().mapToInt(Integer::intValue).sum();
return total / squares.size();
}
}
A
test case example using
generic types.
T
package com.minte9.junit.test_case;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class GenericsTest {
@Test public void integers() {
MyList<Integer> numbers = new MyList<>();
numbers.add(3);
numbers.add(5);
assertEquals(numbers.sum(), 8);
}
@Test public void doubles() {
MyList<Double> numbers = new MyList<>();
numbers.add(3.0);
numbers.add(5.0);
assertEquals(numbers.sum(), 8);
assertNotEquals(numbers.sum(), "8.0");
}
}
class MyList<T extends Number> {
private List<T> items = new ArrayList<>();
public void add(T t) {
items.add(t);
}
public int sum() {
return items.stream()
.mapToInt(Number::intValue)
.sum();
}
}
A
test case example using
lambdas and functional interface
T
package com.minte9.junit.test_case;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
public class LambdasTest {
@Test public void mytest() {
SQ squares = new SQ();
squares.add(() -> 3 * 3);
squares.add(() -> 5 * 5);
assertEquals(squares.average(), 17);
}
}
class SQ {
private List<Square> squares = new ArrayList<>();
public void add(Square s) {
squares.add(s);
}
public int average() {
int total = squares.stream().mapToInt(Square::get).sum();
return total / squares.size();
}
}
@FunctionalInterface interface Square {
int get();
}