gpt4 book ai didi

java - boolean 方法的 Junit 测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:39:18 25 4
gpt4 key购买 nike

我在为以下方法编写测试用例时遇到问题:EvenNum(double)

public class OddEven {

/**
* @param args
*/

public boolean evenNum(double num)
{
if(num%2 == 0)
{
System.out.print(true);
return true;
}
else
{
System.out.print(false);
return false;
}

}

这是我写的测试用例,但我认为我在这个测试用例中有继承问题或逻辑问题。应该是一个很简单的,但想不通。这是我写的代码:

import static org.junit.Assert.*;
import org.junit.Test;

public class OddEvenTest {
@Test
public void testEvenNum() {
boolean ans = true;
boolean val;
double num= 6;

val = OddEven.EvenNum(num) // cant inherit the method dont know why???

assertEquals(ans,val);
}

}

最佳答案

你有很多问题:

  • 您正在尝试静态调用非静态方法
  • Java 中的方法名称区分大小写,而您混淆了大小写。

我为您更正了一些内容并验证了以下代码:

奇偶.java:

public class OddEven {

public boolean evenNum(double num)
{
if(num%2 == 0)
{
System.out.print(true);
return true;
}
else
{
System.out.print(false);
return false;
}

}
}

OddEvenTest.java

import static org.junit.Assert.*;
import org.junit.Test;

public class OddEvenTest {

@Test
public void testEvenNum() {
boolean ans = true;
boolean val;
double num = 6;
OddEven oddEven = new OddEven();

val = oddEven.evenNum(num);
assertEquals(ans,val);
}

}

假设 OddEven 中对 System.out.println() 的调用严格用于调试,整个事情可以折叠为:

奇偶.java

public class OddEven {
public boolean evenNum(double num) {
return num%2 == 0;
}
}

OddEvenTest.java

import static org.junit.Assert.*;
import org.junit.Test;

public class OddEvenTest {

@Test
public void testEvenNum() {
OddEven oddEven = new OddEven();
assertTrue(oddEven.evenNum(6));
assertFalse(oddEven.evenNum(5));
}
}

代码现在更短了,单元测试甚至覆盖了一个很好的衡量标准的奇怪案例。

关于java - boolean 方法的 Junit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com