【Rust】assert!, assert_eq! マクロ

作成
更新

プログラムの途中で値が想定通りになっているかどうかをテストしたい時、Rustにはそのためのマクロが用意されています。マクロで指定した条件を満たせば、何も起きずに素通りし、条件を満たさなければpanicします。コード実行時に満たさなければならない式の条件を定めて、チェックしているわけです。これをアサーションといいます。

アサーションには、以下のマクロが使われます。

  • assert! : 第1引数の式がtrueである
  • assert_eq!: 第1引数と第2引数の式が等しい
  • assert_ne!: 第1引数と第2引数の式が等しくない

これらのマクロはテスト目的だけではなく、サンプルコードの実行結果を表すのにも使われています。

assert_ne!マクロの解説はassert_eq!とほとんど同じなので割愛します。

assert!マクロ: 式がtrueであることを確認する

assert! マクロは,第1引数に与えられている式がtrueの時、なにも起こさずそのまま素通りし、falseの時、panicします。

panic時に出力するメッセージを第2引数以降に指定することができます。使い方はprintln!マクロと同じです。

assert_eq!マクロ: 2つの式が等しいことを確認する

assert_eq!マクロは、第1引数と第2引数の式がお互いに等しければ、何も起きず、等しくなければpanicします。

panic時に出力するメッセージを第3引数以降に指定することができます。使い方はprintln!マクロと同じです。