我有一个将拥有这些方法的类。将来会有一种设置电子邮件和密码变量的方法。但是这些变量永远不能从类外部进行设置。如何测试这些方法?
public class Auth {
private String email;
private String password;
public String getEmail(){
return this.email;
}
public String getPassword(){
return this.password;
}
}
答案 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);