6

loginUnit.java(Test file)

@RunWith(MockitoJUnitRunner.class)
public class loginUnit {
    @Mock
    TextUtils mMockTextUtils;

    @Test
    public void checkStringEmpty(){

        String empty = "";
        when(mMockTextUtils.isEmpty(empty)).thenReturn(true);
        assertThat(LoginActivity.isStringEmpty(empty),is(equalTo(true)));
    }

UUT(unit under test) from LoginActivity

public static boolean isStringEmpty(String s){
        return TextUtils.isEmpty(s);
}

I always get android.text.TextUtils not mocked error, please help me?

Henok Tesfaye
  • 8,287
  • 13
  • 47
  • 84

2 Answers2

6

In your src/test/java folder, add android.text package and create TextUtils.java

public class TextUtils {
  public static boolean isEmpty(CharSequence str) {
    return str == null || str.length() == 0;
  }
}

Detail Here : https://medium.com/@okmanideep/dont-create-that-stringutils-to-unit-test-your-android-class-8ab32af34e84

Dhiraj Sharma
  • 4,364
  • 24
  • 25
5

see http://tools.android.com/tech-docs/unit-testing-support#TOC-Method-...-not-mocked.-

android {
  // ...
  testOptions { 
    unitTests.returnDefaultValues = true
  }
}
LONG
  • 79
  • 1
  • 4