JavaRush /Java Blog /Random-TW /JUnit 第二部分

JUnit 第二部分

在 Random-TW 群組發布
繼續 從這裡開始 -> JUnit 第 I 部分
JUnit 第二部分 - 1
我還想向您展示該方法是如何工作的Assert.fail(String)- 如果調用該方法,測試將失敗。如果類別的其他方法Assert 無法為我們檢查,那麼很方便。假設我們需要禁止接受new String(“”). 讓我們嘗試使用建構函數並禁用傳遞來做到這一點name = “” || null, age = 0; Sex = null。開始吧...我添加了額外的字段用於測試
private User user;
private User user1;
private User user2;

private User userNotAdd;
private User userNotAdd1;
並改變了方法setUp()
@Before
public void setUp() throws Exception {
    user = new User("Eugene", 35, Sex.MALE);
    user1 = new User("Marina", 34, Sex.FEMALE);
    user2 = new User("Alina", 7, Sex.FEMALE);

    userNotAdd = new User("", 0, null);
    userNotAdd1 = new User(null, 0, null);
}
並增加了三種測試方法
@Test
public void newUser_EMPTY_NAME() {
    for (User user : User.getAllUsers()){
        if (user.getName() != null && user.getName().isEmpty()) {
            Assert.fail("Попытка создания пользователя с пустым именем");
        }
    }
}

@Test
public void newUser_AGE_ZERO() {
    for (User user : User.getAllUsers()) {
        if (user.getAge() <= 0) {
            Assert.fail("Попытка создания пользователя c не допустимым возрастом");
        }
    }
}

@Test
public void newUser_SEX_NO_NULL() {
    for (User user : User.getAllUsers()) {
        if (user.getSex() == null) {
            Assert.fail("Попытка создания пользователя с указанием пола = null");
        }
    }
}
在測試中,我們會檢查新增的使用者列表,看看是否有無效資料。我們批量運行測試,我們看到下圖... JUnit 第二部分 - 2 您可以看到我們對構造函數的測試已損壞,並且還捕獲了更多測試。現在我們需要更改構造函數,以便它不會添加用戶列表中參數無效的用戶,讓我們這樣做:
public User(String name, int age, Sex sex) {
    if (name != null && !name.isEmpty() && age > 0 && sex != null){
        this.name = name;
        this.age = age;
        this.sex = sex;

        if (!hasUser()) {
            countId++;
            this.id = countId;
            allUsers.put(id, this);
        }
    }
}
我們運行測試,發現一切都很漂亮。 JUnit 第二部分 - 3 總而言之,JUnit是一個用測試覆蓋程式碼的優秀工具。JUnit配合Maven會更好,在建置專案時,Maven肯定會執行所有的測試,然後建置我們完成的項目,但是如果測試失敗,專案將不會被建置,我們就會知道原因,並且更容易找出故障所在。JUnit的第二個優點是在重構的情況下,JUnit測試將幫助我們確保我們程式的邏輯不會中斷。在大型專案中,如果沒有自動測試系統,生活是不可能的,儘管它可能是可能的,但是您的專案將以蝸牛的速度移動......或類似的東西... JUnit 第二部分 - 4 如果我們用測試很好地覆蓋我們的程式碼,那麼我們就可以確信我們的客戶、我們的產品將會很好地運作。P/S 我向 Victor Sergeev 表示深深的謝意!以下是他教我們的影片課程的連結: 感謝您的關注!!!祝你心情愉快!!!願上帝將您從印度教代碼中拯救出來! ……另外,如果有人有興趣深入研究本文的源代碼...來敲門...我將在這裡分享開頭 - JUnit 第 I 部分
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION