Java assertTrue/assertFalse if语句

Java assertTrue/assertFalse if语句,java,jna,Java,Jna,如何在if语句中使用assertTrue和assertFalse?前面的if语句不起作用,这给了我一个语法错误,但值得一试。我试图将其设置为字符串,并使用value.equals()检查值,但assert给出了一个错误,表示无法转换为字符串 public class JNAWinRegTest extends TestCase { public static void main(String[] args) { try { assertEquals("Windows 7 P

如何在if语句中使用assertTrue和assertFalse?前面的if语句不起作用,这给了我一个语法错误,但值得一试。我试图将其设置为字符串,并使用value.equals()检查值,但assert给出了一个错误,表示无法转换为字符串

public class JNAWinRegTest extends TestCase {

    public static void main(String[] args) { 

    try { assertEquals("Windows 7 Professional", Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE, 
            "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName"));
        if(True) ){
            System.out.println("True");
        }else{
            if(False) ){
                System.out.println("False");    
            }
        }
    } catch (IllegalArgumentException e) {
                e.printStackTrace();
    } catch (IllegalAccessException e) {
                e.printStackTrace();
    } catch (InvocationTargetException e) {
                e.printStackTrace();
            }                                              
        }  
    }

您只需调用
assertEquals(预期,实际)
-如果
expected.equals(实际)
,测试将继续到下一行(并在到达最后一行时通过),如果条件为false,测试将失败


不需要额外的if/else。

所有
assert…()
方法都有返回类型
void
,因此它们不能在
if
语句中使用。您想实现什么?是的。当它失败时,它会根据javadoc抛出AssertionFailedError(我假设您使用的是junit3的TestCase),if语句的原因是根据答案运行命令。希望为win 7运行此修复程序或为win xp运行该修复程序。也许我应该用别的东西?只有在
assertEquals
中测试的条件为真时,才会执行
assertEquals
后面的语句。如果不是这样,
assertEquals
将抛出异常。您的意思是:“想为win 7运行此修复程序还是为win xp运行该修复程序”?您展示的代码是单元测试,不是生产代码,对吗?它不是生产代码,只是目前的一些测试。在某个时候,一旦我知道它可以工作,它将成为一个生产代码。我以前从未使用过assert,只是看到了它的一个示例。