I was studying Enums in Effective Java, and I was a little addicted to writing tests to see if Enums were as expected.
Enum I was writing
public enum Operator {
// There is also PLUS.
DIVIDE("/") {
double apply(double x, double y) { return x / y; }
};
private final String symbol;
Operator(String symbol) { this.symbol = symbol;}
@Override public String toString() { return symbol;}
abstract double apply(double x, double y);
}
Create test class for this class
public class OperatorTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void zeroDivide() {
thrown.expect(ArithmeticException.class);
}
}
Test failed. I casually wrote a test thinking that if I divide by 0, an exception will occur. Even if you divide the double type by 0, no exception will occur.
This way it will pass.
@Test
public void zeroDivide() {
assertThat(Operator.DIVIDE.apply(11, 0), is(Double.POSITIVE_INFINITY));
}