Как написать юнит-тест в Android Studio, связанный с Firebase в реальном времени - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь написать модульные тесты в Android Studio, чтобы протестировать этот метод, но я не знаю, как писать модульные тесты, связанные с Firebase. Может кто-нибудь помочь мне написать юнит-тест в Android?

Это мой метод в DonatTime, который я хочу проверить. Он переводит часы от одного пользователя к другому и проверяет, были ли часы, введенные пользователем, равны или меньше, чем у пользователя.


    private void DonateTimeCreditMethod(){
            UserNameD=(EditText)findViewById(R.id.usernameD);
            final String UN=UserNameD.getText().toString().trim();
            NH=(EditText)findViewById(R.id.NH);
            String hour=NH.getText().toString().trim();
            final int Nhour= Integer.parseInt(hour);
            int nhcu,nhsu;

            String CurrentUID=currentuser.getUid().toString();
            DatabaseReference referenceCurU=FirebaseDatabase.getInstance().getReference("users").child(CurrentUID);
            referenceCurU.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull final DataSnapshot dataSnapshotCU) {
                    final User CUser=dataSnapshotCU.getValue(User.class);
                    final int NHCU= CUser.getTimeCredit();

                    if(NHCU<Nhour){
                        NH.setError("the hour should be less or equal your hours");
                        NH.requestFocus();
                        return;
                    }

                    DatabaseReference reference=FirebaseDatabase.getInstance().getReference("users");
                    Query query=reference.orderByChild("username").equalTo(UN);
                    query.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if(!dataSnapshot.exists()){
                                UserNameD.setError("wrong username ");
                                UserNameD.requestFocus();
                                return;

                            }else {
                                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {



                                    User user = snapshot.getValue(User.class);
                                    Log.v("Name",user.getName());
                                    user.setTimeCredit(user.getTimeCredit()+Nhour);
                                    snapshot.getRef().setValue(user);
    CUser.setTimeCredit(CUser.getTimeCredit()-Nhour);
                                    dataSnapshotCU.getRef().setValue(CUser);

                                    Toast.makeText(DonateTime.this,"Successfully",Toast.LENGTH_SHORT).show();

                                    Intent intent = new Intent( DonateTime.this, Timeline.class);
                                    startActivity(intent);

                                }
                            }

                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });


            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

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