Ich habe Enum in Effective Java studiert und einen Test geschrieben, um festzustellen, ob Enum wie erwartet war, also wurde ich ein wenig süchtig danach.
Enum habe ich geschrieben
public enum Operator { // Es gibt auch 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); }
Erstellen Sie eine Testklasse für diese Klasse
public class OperatorTest { @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void zeroDivide() { thrown.expect(ArithmeticException.class); } }
Im Test durchgefallen. Ich habe beiläufig einen Test geschrieben, in dem ich dachte, dass eine Ausnahme auftritt, wenn ich durch 0 dividiere. Selbst wenn Sie den Doppeltyp durch 0 teilen, tritt keine Ausnahme auf.
Auf diese Weise wird es passieren.
@Test public void zeroDivide() { assertThat(Operator.DIVIDE.apply(11, 0), is(Double.POSITIVE_INFINITY)); }