У меня есть метод, который я хочу протестировать, у метода есть подпись public void processBalance (EditTextcomeField, HashMap yearsMappedToObjectYearsMap, логическое значение isPaymentCircleSet, TextView balanceLabel) и находится в классе утилит MainActivityUtil.Моя основная активность:
public class MainActivity extends AppCompatActivity implements IHODClientCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
....
mainUtil = new MainActivityUtil(this);
incomeField = new EditText(this);
incomeField = (EditText) findViewById(R.id.incomeField);
isPaymentCircleSet = sharedprefs.getBoolean(ISPAYMENTCIRCLE, false);
balanceLabel = new TextView(this);
balanceLabel = (TextView) findViewById(R.id.balanceView);
yearsMappedToObjectYearsMap = new HashMap<>();
yearsMappedToObjectYearsMap = util.readTheFile();
//and the method later is called
mainUtil.processBalance(incomeField, yearsMappedToObjectYearsMap,isPaymentCircleSet,balanceLabel);
}
}
И я хочу написать тест Junit для проверки этого метода, я видел, что я могу использовать Mockito, пока у меня естьсделал это:
@RunWith(MockitoJUnitRunner.class)
public class MainActivityTests {
@Mock
private Context context;
@Mock
private EditText incomeField;
@Mock
MainActivity mMockMainActivity;
@Test
public void testProcessBalance(){
MainActivityUtil mainUtil = new MainActivityUtil(context);
incomeField = (EditText) mMockMainActivity.findViewById(R.id.incomeField);
incomeField.setText(1000);
HashMap<String, AnyYear> yearsMappedToObjectYearsMap = new HashMap<>();
boolean isPaymentCircleSet = false;
TextView balanceLabel = new TextView(context);
mainUtil.processBalance(incomeField,yearsMappedToObjectYearsMap,isPaymentCircleSet,balanceLabel);
}
Я вижу, чтоcomeField является нулевым, и это неправильно.Любая помощь будет оценена.