如何编写两个数字的测试?
How to write a test of two numbers?
我不确定我的看法是否正确。我有一个正常的功能,我扫描两个数字并将它们加在一起。
现在,我想编写一个测试来检查函数是否正确。
我要添加的功能:
public class adding {
public static void main(String[] args) {
int number1;
int number2;
int sum;
Scanner scan;
scan = new Scanner(System.in);
scan.useDelimiter(System.lineSeparator());
System.out.println("Please give the first number: ");
number1 = scan.nextInt();
System.out.println("Please give the second number: ");
number2 = scan.nextInt();
sum = number1 + number2;
System.out.println("Sum of the two numbers: " + sum);
}
}
测试函数:
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Before;
public class addingTest {
@Before
public void testing() throws Exception {
}
@Test
public void test() {
int sum = 4+5;
assertEquals(sum, 9);
}
}
目前您的测试没有执行任何操作。好吧,除了它测试 4+5
是否为 9
之外什么都没有,这是正确的,但这不会让你到任何地方。
在最基本的形式中,单元测试是验证 class 的“单元”功能的测试。这意味着您的代码的一部分有自己的责任,并且独立于任何其他依赖项进行测试。
现在你只有一个main
方法,没有什么可以测试的。相反,您应该做的是将“逻辑”提取到方法中。您正在尝试测试是否正确添加了两个数字,因此将其提取到一个方法中:
public static int add(int number1, int number2) {
return number1 + number2;
}
将该方法集成到您的代码中:
public class Rechenprogramm {
public static void main(String[] args) {
...
System.out.println("Please give the first number: ");
number1 = scan.nextInt();
System.out.println("Please give the second number: ");
number2 = scan.nextInt();
sum = add(number1, number2);
...
}
public static int add(int number1, int number2) {
return number1 + number2;
}
}
现在您已经提取了功能,可以以单元测试的形式进行隔离测试:
@Test
public void test() {
int number1 = 4;
int number2 = 5;
int actualSum = Rechenprogramm.add(number1, number2);
assertEquals(9, actualSum);
}
我不确定我的看法是否正确。我有一个正常的功能,我扫描两个数字并将它们加在一起。
现在,我想编写一个测试来检查函数是否正确。
我要添加的功能:
public class adding {
public static void main(String[] args) {
int number1;
int number2;
int sum;
Scanner scan;
scan = new Scanner(System.in);
scan.useDelimiter(System.lineSeparator());
System.out.println("Please give the first number: ");
number1 = scan.nextInt();
System.out.println("Please give the second number: ");
number2 = scan.nextInt();
sum = number1 + number2;
System.out.println("Sum of the two numbers: " + sum);
}
}
测试函数:
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Before;
public class addingTest {
@Before
public void testing() throws Exception {
}
@Test
public void test() {
int sum = 4+5;
assertEquals(sum, 9);
}
}
目前您的测试没有执行任何操作。好吧,除了它测试 4+5
是否为 9
之外什么都没有,这是正确的,但这不会让你到任何地方。
在最基本的形式中,单元测试是验证 class 的“单元”功能的测试。这意味着您的代码的一部分有自己的责任,并且独立于任何其他依赖项进行测试。
现在你只有一个main
方法,没有什么可以测试的。相反,您应该做的是将“逻辑”提取到方法中。您正在尝试测试是否正确添加了两个数字,因此将其提取到一个方法中:
public static int add(int number1, int number2) {
return number1 + number2;
}
将该方法集成到您的代码中:
public class Rechenprogramm {
public static void main(String[] args) {
...
System.out.println("Please give the first number: ");
number1 = scan.nextInt();
System.out.println("Please give the second number: ");
number2 = scan.nextInt();
sum = add(number1, number2);
...
}
public static int add(int number1, int number2) {
return number1 + number2;
}
}
现在您已经提取了功能,可以以单元测试的形式进行隔离测试:
@Test
public void test() {
int number1 = 4;
int number2 = 5;
int actualSum = Rechenprogramm.add(number1, number2);
assertEquals(9, actualSum);
}