2

我知道这个问题之前已经被其他人回答过,但答案似乎因情况而异。

我看到很多人说应该实例化该类,以便可以对其进行测试和模拟等...好吧,这是我的代码,在我看来,我可以轻松地对其进行单元测试。

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);

或者这是不好的做法?

4

0 回答 0