我在下面的方法中编写测试用例时遇到问题: 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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我写的测试用例,但我认为在这个测试用例中我有一个继承问题或逻辑问题.应该是一个非常简单的,但无法弄清楚.这是我写的代码:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
你有很多问题:
我为你纠正了一些事情,只是验证了下面的代码:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
假设对System.out.println()in 的调用OddEven严格用于调试,整个过程可能会崩溃为:
public class OddEven {
public boolean evenNum(double num) {
return num%2 == 0;
}
}
Run Code Online (Sandbox Code Playgroud)
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));
}
}
Run Code Online (Sandbox Code Playgroud)
现在代码更短了,单元测试甚至涵盖了一个奇怪的情况.
两件事情 :
您正在静态调用非静态方法.该方法应声明为static:
public static boolean evenNum(double num){
}
您没有正确键入方法的名称.仔细看.还要考虑将其重命名为更具可读性的内容,isEven(...)
| 归档时间: |
|
| 查看次数: |
53052 次 |
| 最近记录: |