我怎样才能在Android中对这个类进行单元测试(它有静态的最终变量)?

时间:2017-07-15 14:27:25

标签: java android unit-testing junit mocking

如果两种方法在使用单元测试时是否正常工作,我该如何测试?

public class UserSession {

   public static final String SESSION_KEY = "sessionKey";

   @Nullable
   public String getSessionKey() {
      return Settings.getSharedPreferences().getString(SESSION_KEY, null);
   }

   private void setSessionKey(String key) {
      Settings.putString(SESSION_KEY, key);
   }
}

1 个答案:

答案 0 :(得分:0)

我没有使用Android的经验,但该类看起来像标准的Java类。因此,我认为像下面这样的测试可行。

public class UserSessionTest {
    private final UserSession userSession = new UserSession();

    @Test
    public void sessionKeyIsNullByDefault() {
        String key = userSession.getSessionKey();
        assertNull(key);
    }

    @Test
    public void sessionKeyCanBeChanged() {
        userSession.setSessionKey("dummy key");
        assertEquals("dummy key", userSession.getSessionKey());
    }
}