java - 从用 Android Studio 编写的 Login 类创建 Java 单元测试
问题描述
有人可以帮我做这个类的java单元测试吗?我已经尝试了很多次,但结果都不行,所以我希望你能帮助我。
public class Login extends AppCompatActivity {
EditText email, password;
Button login_button;
TextView goToReg;
ProgressBar progressBar;
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_login );
email = findViewById( R.id.emailLog );
password = findViewById( R.id.passwordLog );
login_button = findViewById( R.id.buttonLog );
goToReg = findViewById( R.id.gotoregistration );
progressBar = findViewById( R.id.progressBarLog );
fAuth = FirebaseAuth.getInstance();
login_button.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
String mail = email.getText().toString().trim();
String password_string = password.getText().toString().trim();
if(TextUtils.isEmpty(mail))
{
email.setError("Email requested!");
return;
}
if(TextUtils.isEmpty( password_string ))
{
password.setError( "Password requested!" );
return;
}
if(password_string.length()<6)
{
password.setError( " password must have more than 5 characters" );
return;
}
progressBar.setVisibility( View.VISIBLE );
// User authentication
fAuth.signInWithEmailAndPassword( mail, password_string ).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
Toast.makeText( Login.this, "Login done.", Toast.LENGTH_SHORT ).show();
startActivity( new Intent( getApplicationContext(), MainActivity.class ) );
}else{
Toast.makeText( Login.this, "Error: "+task.getException().getMessage(), Toast.LENGTH_SHORT ).show();
progressBar.setVisibility( View.INVISIBLE );
}
}
});
}
} );
goToReg.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity( new Intent( getApplicationContext(), Registration.class ) );
}
} );
}
}
这是我在Android Studio上编写的应用程序的Login类,还有其他类我必须测试并且与该类类似,所以我希望有人可以使用这个Login类创建一个示例并创建一个JUnit测试示例,所以我能理解这个过程。谢谢你。
解决方案
您只需测试您的登录是否根据您发送的数据有效。
请在此处查看以下内容以获取更多建议。例如,它会是这样的:
email = findViewById( R.id.emailLog );
password = findViewById( R.id.passwordLog );
email.setText("email");
pass.setText("pass");
login_button = findViewById( R.id.buttonLog );
loginBtn.performClick();
assertTrue(loginActivity.isCurUserLoggedIn());
我还没有测试过这个,所以如果这个例子适合你,请告诉我。
推荐阅读
- javascript - 使用 JFROG AQL 命令将 curl Artifactory 转换为 javascript 获取请求:401 未经授权的错误
- data-science - NVIDIA data-science-stack ==> 要使更改生效,请关闭并重新打开您当前的 shell。<==
- python - 重新安装windows后程序不再工作
- amazon-dynamodb - DynamoDB 扫描忽略大写或小写字母
- oauth-2.0 - OAuth2 服务注册表缓存未在 CAS 6.3.x 中补水
- python - 读取 CSV 时使用多个引号字符
- javascript - 如何替换字符串中的肤色变体表情符号?
- phpstorm - 如何使用 Xdebug 让 PhpStorm 忽略来自某个域的传入连接
- git - 如何强制 git 检测更改的文件(由于工作树编码)?
- javascript - 更改悬停以单击 Themify - 产品过滤器中的功能