我知道这个问题之前已经被其他人回答过,但答案似乎因情况而异。
我看到很多人说应该实例化该类,以便可以对其进行测试和模拟等...好吧,这是我的代码,在我看来,我可以轻松地对其进行单元测试。
WebsiteLogin.java 是一个扩展 Website.java 的接口,包含一个名为 login() 的 void 方法,它接受三个字符串,用户名、密码和 Url。
AccountLogin.java 是一个扩展 Account 的接口,它包含用于 Username、Password 和 Url 的 getter 方法,以及一个采用布尔值的 setEnabled() 方法。
在一个名为 Login.java 的单独类中,我有一个方法 login(),它采用 WebsiteLogin 和 AccountLogin。该类只有一种方法。
这是代码
static void login(AccountLoginInformation account, LoginToWebsite website){
website.login(account.getUsername(), account.getPassord(), account.getUrl());
account.setEnabled(true);
}
所以它登录然后将帐户设置为启用。现在虽然这个方法是静态的,但我仍然可以通过向它发送一个存根 LoginToWebsite 来测试它是否有效。我在这里正确吗?那么不使用静态方法还有其他原因吗?
另一个问题,使用 Java 8 和接口中的默认方法,我可以使用以下内容创建一个名为 Login.java 的接口;
default void login(AccountLoginInformation account, LoginToWebsite website){
website.login(account.getUsername(), account.getPassord(), account.getUrl());
account.setEnabled(true);
}
然后在另一个类中实现 Login.java 类并调用
login(account, website);
或者这是不好的做法?