例外処理:メッセージの処理
例外を使い、適切に処理することがコード作成の要であるのと同じように、これらの例外をテストすることもプロジェクトのテストでは不可欠です。
この演習では、JUnit のクラスインスタンスに関するアサーションの文法を練習します。文字列を大文字に変換しますが、文字列が null の場合はカスタムの RuntimeException をスローするメソッドが与えられています。あなたのタスクは、そのためのユニットテストを書くことです。
この演習はコースの一部です
Javaによるテスト入門
演習の手順
- 成功シナリオのテストで、メッセージが大文字に変換されたことをアサートしてください。
- スローされた例外が
RuntimeExceptionクラスのインスタンスであることを検証するために、正しい種類のアサーションを使用してください。 - 例外の期待されるクラスを入力してください。
- 例外メッセージを検証するために正しいアサーションを使用してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void processMessage_returnsUppercase() {
String message = "error!";
String expected = "ERROR!";
String actual = MessageProcessor.processMessage(message);
// Assert the message is converted to uppercase
____(expected, actual);
}
@Test
void processMessage_throwsException_whenMessageIsNull() {
String message = null;
Exception expectedException = null;
try {
MessageProcessor.processMessage(message);
} catch (Exception e) {
expectedException = e;
}
// Assert the correct type of exception
____(RuntimeException.class, expectedException);
// Assert the correct exception message
____("Message cannot be null.", expectedException.getMessage());
}
}