Как протестировать метод с параметрами EditText и TextView - PullRequest
0 голосов
/ 27 января 2019

У меня есть метод, который я хочу протестировать, у метода есть подпись 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 является нулевым, и это неправильно.Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...