无法在原始类型 boolean 上调用 isEqualTo(boolean)

Cannot invoke isEqualTo(boolean) on the primitive type 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);

这一行在很多方面都是错误的。

  1. 括号甚至没有对齐。
  2. isEqualTo 不是以 assertEquals 开头 - 它以 assertThat 开头。您正在混合两种完全不同的方式来编写测试。
  3. 由于缺少括号,您现在正试图对原始布尔值调用 .isEqualTo。它不是对象,primitiveExpression.anything 在 java 中不起作用。

您可能想要:

assertThat(v.isValid(email)).isEqualTo(true);

或更有可能:

assertTrue(v.isValid(email));

//你可以尝试使用 assertTrue 并通过 isValid()

传递值类型 return
@Test
public void isValidTest() {
   Validation v = new Validation();
   String email = "bhavya@gmail.com";
   Boolean value = v.isValid(email);
   assertTrue(value); 
}