我有一个创建新对象的简单方法(实际上,它创建了相当复杂的对象)
class MyClass {
public MyObject create() { return new MyObject(); }
}
我要测试是否在create
调用时返回MyObject
的相等性。
如何使用mockito
来做到这一点?
public MyClassTest {
@Mock
private MyClass myClassMock;
@Test
public void testCreate() {
???
}
答案 0 :(得分:1)
无需使用像Java这样的静态类型的语言进行测试。如果编译,它将将始终创建MyObject
的实例,因为这是返回类型声明的内容。
如果出于某种原因您确实想在运行时检查类型(可能是因为您要检查比此时类型系统所提供的条件更严格的条件),则可以使用instanceof
关键字或{{1 }}
答案 1 :(得分:0)
尝试一下:
if (create() instanceof MyObject ) {
// ...
}
答案 2 :(得分:0)
尽管没有必要测试这种行为,但您可以执行以下操作:
GoogleSignInAccount acct = result.getSignInAccount();
// credential
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
FirebaseAuth.getInstance().getCurrentUser().reauthenticate(credential).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d(TAG, "User re-authenticated.");
//Now change your email address
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.updateEmail("user@example.com")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User email address updated.");
}
}
});
}
});
有关二手匹配器的更多信息:http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/CoreMatchers.html#instanceOf(java.lang.Class)