Я пытаюсь написать модульные тесты в 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) {
}
});
}