我在向以下方法编写测试用例时遇到问题: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;
}
}
}
奇偶测试.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);
}
}
假设调用System.out.println()
in OddEven
严格来说是为了调试,整个事情可以折叠成:
奇偶.java
public class OddEven {
public boolean evenNum(double num) {
return num%2 == 0;
}
}
奇偶测试.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));
}
}
代码现在更短,单元测试甚至涵盖了一个奇怪的情况以进行良好的测量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)