有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

junit如何测试Java getter方法

我有一个类将有这些方法。将来会有一种设置电子邮件和密码变量的方法。但这些变量永远无法从类外进行设置。如何测试这些方法

public class Auth {
    private String email;
    private String password;

    public String getEmail(){
        return this.email;
    }

    public String getPassword(){
        return this.password;
    }
}

共 (3) 个答案

  1. # 1 楼答案

    测试getter和setter没有显著的好处,甚至可能是有害的。原因是,puregetter和setter不提供可测试的业务功能。相反,它们是面向对象设计原则(信息隐藏)的一部分

  2. # 2 楼答案

    不要测试getter,而是测试一些合理的单元/用例。一定是有什么东西在创造这些东西,它是这个单元的一部分

    例如:

    @Test
    public void shouldCreateAuthFromColonSeparated() {
        Auth auth = authFactory.create("johnny@example.com:secret");
        assertThat(auth.getEmail(), is("johnny@example.com"));
        assertThat(auth.getPassword(), is("secret"));
    }
    
  3. # 3 楼答案

    理想情况下,无论是否在Auth类中设置密码,都需要使用setUp()重写方法设置JUnit

    接下来需要做的事情是从数据库/whereverStored获取实际密码的值,并将其与getPassword()值进行比较

    进行测试时,您可以拨打:

    Auth authObj = ...; //your Auth object where password is set
    assertTrue(dbPassword.equals(authObj.getPassword()), true);