LoginSignup
0
2

More than 5 years have passed since last update.

Java doubleをゼロ除算しても例外発生しない

Last updated at Posted at 2017-01-28

Effective JavaでEnumについて勉強してて、Enumが想定している通りになっているか確認するのにテストを書いていて少しはまったのでメモ

書いていたEnum


public enum Operator {

        // 他に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);
}

このクラスに対してテストクラス作成


public class OperatorTest {

@Rule
public ExpectedException thrown = ExpectedException.none();

@Test
public void zeroDivide() {

    thrown.expect(ArithmeticException.class);


       }
}

テスト失敗。
何気なく、0で除算したら例外発生するよなと思ってテスト書いてみたけど、
double型を0で割っても例外発生しないのですね。

こうすれば通る。


@Test
public void zeroDivide() {
    assertThat(Operator.DIVIDE.apply(11, 0), is(Double.POSITIVE_INFINITY));
}
0
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2