如何解决无法在基本类型 boolean 上调用 isEqualTo(boolean)
此代码需要测试,但我无法解决错误。 Boolean isValid 是需要测试的方法。
public boolean isValid(String email)
{
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\."+
"[a-zA-Z0-9_+&*-]+)*@" +
"(?:[a-zA-Z0-9-]+\\.)+[a-z" +
"A-Z]{2,7}$";
Pattern pat = Pattern.compile(emailRegex);
if (email == null)
return false;
return pat.matcher(email).matches();
}
Getting error in writing test case: Cannot invoke isEqualTo(boolean) on the primitive type boolean
@Test
public void isValidtest() {
Validation v = new Validation();
String email = "bhavya@gmail.com";
assertEquals(v.isValid(email).isEqualTo(true)); //this line gives the error.
}
解决方法
assertEquals(v.isValid(email).isEqualTo(true);
这一行在很多方面都是错误的。
- 括号甚至不对齐。
-
isEqualTo
不是以assertEquals
开头 - 它以assertThat
开头。您正在混合两种完全不同的方式来编写测试。 - 由于缺少括号,您现在尝试对原始布尔值调用
.isEqualTo
。它不是一个对象,primitiveExpression.anything
在 Java 中不起作用。
你大概想要:
assertThat(v.isValid(email)).isEqualTo(true);
或更可能:
assertTrue(v.isValid(email));
,
//您可以尝试使用assertTrue并通过isValid()传递值类型返回
@Test
public void isValidTest() {
Validation v = new Validation();
String email = "bhavya@gmail.com";
Boolean value = v.isValid(email);
assertTrue(value);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。