JavaRush /Java 博客 /Random-ZH /JUnit 第二部分

JUnit 第二部分

已在 Random-ZH 群组中发布
继续 从这里开始 -> 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