Java assertTrue/assertFalse if语句
如何在if语句中使用assertTrue和assertFalse?前面的if语句不起作用,这给了我一个语法错误,但值得一试。我试图将其设置为字符串,并使用value.equals()检查值,但assert给出了一个错误,表示无法转换为字符串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
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,只是看到了它的一个示例。