始める無料で始める

ユーザー名の検証

あなたは自分のウェブサイトのサインアップフォームを作成しており、現在はユーザー名の検証に取り組んでいます。これは true/false を返すブール型のメソッドですが、分岐が多いため、すべての分岐に到達でき、期待どおりに動作することを確認したいと考えています。

このメソッドを十分に検証するには、各シナリオに対して個別のテストを複数作成する必要があります。幸い、それほど複雑ではありません。

必要な JUnit パッケージはすでにインポートされています。

この演習はコースの一部です

Javaによるテスト入門

コースを見る

演習の手順

  • ユーザー名の長さチェックを検証するテストで、短すぎる(3文字未満の)ユーザー名を入力し、検証に失敗させます。
  • username.isValidUsername() メソッドに渡し、その結果を保存します。
  • null のケースではユーザー名の検証が失敗することをアサートします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

public class Main {
    public static void main(String[] args) {
		launchTestsAndPrint(UsernameValidatorTest.class);
    }
}

class UsernameValidator {
    public static boolean isValidUsername(String username) {
                return username != null && !username.isEmpty() && !username.contains(" ") && username.length() >= 3;
    }
}

class UsernameValidatorTest {

    @Test
    void isValidUsername_returnsTrue_whenValidUsername() {
        String username = "john_doe";
        boolean actual = UsernameValidator.isValidUsername(username);
        assertTrue(actual);
    }

    @Test
    void isValidUsername_returnsFalse_whenSpaces() {
        String username = "john doe";
        boolean actual = UsernameValidator.isValidUsername(username);
        assertFalse(actual);
    }

    @Test
    void isValidUsername_returnsFalse_whenShortUsername() {
        // Enter a username that is too short
        String username = "____";
        boolean actual = UsernameValidator.isValidUsername(username);
        assertFalse(actual);
    }

    @Test
    void isValidUsername_returnsFalse_whenNull() {
    	String username = null;
        // Pass the username to isValidUsername 
        boolean actual = UsernameValidator.____(____);
        // Verify the username is invalid
        ____(actual)
    }
}
コードを編集して実行