Proste testy aplikacji

0

Witam
Jestem początkujący jeśli chodzi o programowanie a na potrzeby projektu muszę sporządzić testy aplikacji mobilnej. Aplikacja jest bardzo prosta i jest typu To Do. Jakie testy mogę wykonać i jak one mogły by wygladac.

0

@Przemek Spr: Zacznij od tzw. testów jednostkowych (unit testów). Zazwyczaj używa się jakiś JUnit oraz poczytaj czym jest Mockowanie i jak się Mockuje obiekty.

Wrzuć kawałek kodu to będzie coś łatwiej zasugerować. I czy nie możesz pisać projektu w Kotlin czy uczysz sie specjalnie Javy?

0

Pisze aplikacje na zaliczenie na studiach i mam ją przetestować tylko nie mam pojęcia jak

0

com.example

public class AddNewTask extends BottomSheetDialogFragment {

public static final String TAG = "AddNewTask";


private EditText mEditText;
private Button mSaveButtom;
private DataBaseHelper myDb;

public static AddNewTask newInstance(){
    return new AddNewTask();
}

@Nullable

@Override
public View onCreateView(@NonNull  LayoutInflater inflater, @Nullable  ViewGroup container, @Nullable  Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.add_newtask, container , false);
    return v;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable  Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mEditText = view.findViewById(R.id.edittext);
    mSaveButtom = view.findViewById(R.id.button_save);


    myDb = new DataBaseHelper(getActivity());

    boolean isUpdate = false;

    Bundle bundle = getArguments();
    if (bundle !=null){
        isUpdate = true;
        String task = bundle.getString("task");
        mEditText.setText(task);

        if (task.length()>0){
            mSaveButtom.setEnabled(false);
        }

    }
    mEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (s.toString().equals("")){
                mSaveButtom.setEnabled(false);
                mSaveButtom.setBackgroundColor(Color.GRAY);
            }else{
                mSaveButtom.setEnabled(true);
                mSaveButtom.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
            }
        }


        @Override
        public void afterTextChanged(Editable s) {

        }
    });
    final boolean finalIsUpdate = isUpdate;
    mSaveButtom.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String text = mEditText.getText().toString();
            if(finalIsUpdate){
                myDb.updateTask(bundle.getInt("id"), text);

            }else{
                ToDoModel item = new ToDoModel();
                item.setTask(text);
                item.setStatus(0);
                myDb.insertTask(item);
            }
            dismiss();
        }
    });

}


@Override
public void onDismiss(@NonNull  DialogInterface dialog) {
    super.onDismiss(dialog);
    Activity activity = getActivity();
    if (activity instanceof OnDialogCloseListener){
        ((OnDialogCloseListener)activity).onDialogClose(dialog);
    }
}

}

0

TO jest klasa odpowiedzialna za widok dodawania wydarzenie jakoś da się tutaj wykonać test ?

0

Kod jest słabej jakości. Zmień nazwy zmiennych na czytelniejsze (mEditText i R.id.ediText woła o pomstę do nieba). Wydziel podfunkcje, które zajmują się danym zadaniem. Jeśli jesteś jednak zainteresowany jedynie zaliczeniem na studia i wystarczą Ci byle jakie testy, to napisz testy jednostkowe - np. do jakiejś klasy narzędziowej. Materiał do zapoznania się: https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics

0

Jestem naprawdę początkujący więc jeśli chodzi o jakość kodu staram się ale wiadomo jakie są początki

0

Czy np.testem może być sprawdzenie czy pusty edittext doda się do listy ?

0

Naturalnie, ale jeśli piszesz kod staraj się, aby był jak najbardziej czytelny i używaj opisowych nazw. Który rok studiów? Tak, taki test może polegać na takim sprawdzeniu jak napisałeś, ale są to już testy UI (interfejsu użytkownika), które są trudniejsze do napisania i wymagają więcej wiedzy. Jeśli się przy tym upierasz to w drugiej części codelabu zobaczysz pewne przykłady jak to robić: https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-test-doubles

0

Testy w javie są takie same jak w kotlinie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1