JUnit
You can use JUnit 4 or 5 in Codewars. 5 offers nesting, pretty name display and multiple test classes.
Note that JUnit assertions use (expected, actual)
parameter ordering rather than the typical (actual, expected)
.
Basic Setup
Example solution
public class Adder {
public static int add(int a, int b) {
return a + b;
}
}
public class Adder {
public static int add(int a, int b) {
return a + b;
}
}
JUnit 4
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AdderTests {
@Test
public void testAdd() {
assertEquals(3, Adder.add(1, 2));
}
}
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AdderTests {
@Test
public void testAdd() {
assertEquals(3, Adder.add(1, 2));
}
}
JUnit 5
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DisplayName("Testing Adder")
class AdderTests {
@Test
@DisplayName("Adder.add(1, 1) returns 2")
void testPositives() {
assertEquals(2, Adder.add(1, 1), "1 + 1 should equal 2");
}
@Nested
@DisplayName("Negative Integers")
class NegativeTests {
@Test
@DisplayName("Adder.add(-1, -1) returns -2")
void testNegatives() {
assertEquals(-2, Adder.add(-1, -1), "-1 + -1 should equal -2");
}
}
}
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DisplayName("Testing Adder")
class AdderTests {
@Test
@DisplayName("Adder.add(1, 1) returns 2")
void testPositives() {
assertEquals(2, Adder.add(1, 1), "1 + 1 should equal 2");
}
@Nested
@DisplayName("Negative Integers")
class NegativeTests {
@Test
@DisplayName("Adder.add(-1, -1) returns -2")
void testNegatives() {
assertEquals(-2, Adder.add(-1, -1), "-1 + -1 should equal -2");
}
}
}