有这样的java程序(20分) double div(double x,double y){ return x/y; } 请写两个junit测试用例分别测试除数为0,和除数不为0的场景。
时间: 2023-11-28 08:05:07 浏览: 24
好的,以下是两个JUnit测试用例:
```java
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class DivTest {
@Test(expected = ArithmeticException.class)
public void testDivideByZero() {
double result = div(10.0, 0.0);
}
@Test
public void testDivideNonZero() {
double result = div(10.0, 2.0);
assertEquals(5.0, result, 0.0001);
}
private double div(double x, double y) {
return x / y;
}
}
```
第一个测试用例测试除数为0的情况,期望会抛出 ArithmeticException 异常。第二个测试用例测试除数不为0的情况,期望结果应该为正确的商。注意测试用例中的 `div` 函数和题目中给出的函数是一致的。
相关问题
运行jar程序 Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
这个错误通常是由于缺少JUnit库导致的。您需要将JUnit库添加到您的项目中。具体步骤如下:
1. 下载JUnit库,可以从官网下载:https://junit.org/junit5/
2. 将下载的JUnit库添加到您的项目中。如果您使用的是Maven,则可以在pom.xml文件中添加以下依赖项:
```
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
```
如果您使用的是Gradle,则可以在build.gradle文件中添加以下依赖项:
```
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
```
3. 重新编译并运行您的程序。
编写一个java程序并用至少四个JUnit断言进行测试
好的,下面是一个简单的Java程序和至少四个JUnit断言进行测试的示例:
```java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("Cannot divide by zero!");
}
return a / b;
}
}
```
上面这个程序是一个简单的计算器类,其中包含了加、减、乘、除四个基本运算方法。下面是对这个类进行JUnit测试的代码:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result);
}
@Test
public void testSubtract() {
Calculator calculator = new Calculator();
int result = calculator.subtract(5, 3);
assertEquals(2, result);
}
@Test
public void testMultiply() {
Calculator calculator = new Calculator();
int result = calculator.multiply(2, 3);
assertEquals(6, result);
}
@Test
public void testDivide() {
Calculator calculator = new Calculator();
int result = calculator.divide(6, 3);
assertEquals(2, result);
try {
calculator.divide(6, 0);
fail("Expected an IllegalArgumentException to be thrown");
} catch (IllegalArgumentException e) {
assertEquals("Cannot divide by zero!", e.getMessage());
}
}
}
```
上面的代码包含了四个测试方法,分别测试了加、减、乘、除四个方法的正确性。其中,使用了四个断言方法:
* `assertEquals(expected, actual)`:验证两个数值是否相等;
* `fail(message)`:用于在测试未通过时抛出异常;
* `try-catch` 语句:用于捕获异常并验证异常信息是否正确。
这些断言方法可以帮助我们快速、准确地判断程序的正确性。