如何测试Java getter方法

时间:2014-07-24 14:01:46

标签: java junit setter getter

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

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

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

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

3 个答案:

答案 0 :(得分:3)

不要测试吸气剂,而是测试一些合理的单位/用例。必须创建这些对象,它是该单元的一部分。

例如:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

接下来您需要做的是从database / whereverStored获取实际密码的值,并将其与getPassword()值进行比较。

如需测试,您可以致电:

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