问题是我对程序的输入是整数数据类型,输出是双数据类型。因此,在编写参数化JUnit测试用例时,assertEquals会自动删除。。。显示2个错误。它们如下:-类型Assert中的方法assertEquals(double,double)已被弃用-类型循环中的方法findarea(int)不适用于参数(int,double)
这里方法findarea是我查找循环区域的方法。这是我的密码。
package BasicTesting;
import java.io.*;
class Circle
{
public static void main(String args[])throws IOException {
BufferedReader ob = new BufferedReader(new InputStreamReader(System.in));
int radius ;
System.out.println("Enter the radius of circle.. ");
radius=Integer.parseInt(ob.readLine());
Circle a=new Circle();
double g=a.findarea(radius);
System.out.println(g);
}
public static double findarea(int radius){
double area;
double pi=3.14;
area = pi * radius * radius;
return area;
}
}
这是我的测试用例
package BasicTesting;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class CircleTest {
public CircleTest(int input, double expected,double delta) {
super();
this.input = input;
this.expected = expected;
this.delta = delta;
}
Circle ob=new Circle();
private int input;
private double expected;
private double delta;
@Parameters
public static Iterable<Object[]> testConditions() {
return Arrays.asList(new Object[][] {{1,3.14d,-2.14d},{2,12.56d,-10.56}});
}
@Test
public void Circletest() {
assertEquals(expected,Circle.findarea(input));
}
}
当我试图运行测试用例时,它显示了以下错误:java。lang.AssertionError:使用assertEquals(预期、实际、增量)来比较浮点数。请帮我重写这个JUnit测试用例。我试过好几次了。请帮帮我。非常感谢!
要修复所得到的错误,请在assertEquals中提供delta作为第三个参数。
@Test
public void circleTest() {
assertEquals(expected, Circle.findarea(input), delta);
}
Δ基本上是精度的量。这意味着如果预期值和实际值之间的绝对差异小于或等于delta。它仍然会考虑匹配。简而言之
数学。abs(预期-实际)
assertEquals(1.1, 1.2, 0.1); // diff: 0.1, result : true
assertEquals(1.10, 1.20, 0.09); // diff: 0.1, result : false
assertEquals(1.9999, 2.0, 0.10); // diff: 0.0001, result: true
注意,assertEquals(double,double)
现在已被弃用。这里有更多详细信息,为什么在JUnit中不推荐使用assertEquals(double,double)?
问题内容: 我有一个在一个(主)线程中工作的Java代码。从主线程中,我产生了一个新线程,在其中进行服务器调用。服务器调用完成后,我在新线程中进行了一些工作,然后代码加入了主线程。 我正在使用Eclipse Jobs进行服务器调用。 我想知道,如何为此编写一个JUnit测试用例。 问题答案: 您可能需要重组代码,以便可以轻松对其进行测试。 我可以看到几个不同的测试区域: 线程管理代码:启动线程并可
customer-Mapper.xml daoimpl.java
主要内容:1 参数化测试的介绍,2 使用@Parameter进行字段注入而不是构造函数,3 使用单个参数进行测试,4 识别单个测试用例1 参数化测试的介绍 自定义流道参数化实现参数化测试。运行参数化测试类时,将为测试方法和测试数据元素的叉积创建实例。 例如,要测试斐波那契函数,请编写: FibonacciTest的每个实例都将使用二元参数构造函数和方法中的数据值构造 @Parameters 。 2 使用@Parameter进行字段注入而不是构造函数 也可以将数据值直接注入字段中,而无需使用@Pa
我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5
我想用mock它来模拟下面代码中的数据源对象,但每次我都得到空指针异常。 我试过嘲笑数据源和连接,但似乎什么都不起作用。
我是java新手,我正在编写一个ATM程序,用户可以输入三次pin码,如果他们输入的pin码不正确,他们的卡就会被阻塞。我曾尝试为以下代码编写Junit测试,但似乎无法理解。我有两门课,分别是AtmPin和AtmTester。AtmTester是主类所在的位置。 AtmPin.java AtmTester.java