我会做这样的事情吗?
Assert.assertTrue(value = int n);
另外,如果我有一个方法,例如:
public int get(){
return count;
}
我会为它写一个什么样的测试用例?如果返回是整数,我会写一个测试用例测试吗?
重新评估您的第一个问题 - 返回类型是 int (因此您无需验证)。关于您的第二个问题,如果它只是一个吸气剂,则无需为它编写测试。通常,单元测试可以帮助您测试业务逻辑以及应用程序构建块的某些行为是否有效。如果我们以计数为例,您可能希望构建一个测试用例,其中包含以特定方式影响计数的操作,然后断言它的预期值。您可以在此处查看有关 Java 单元测试的精彩教程。
我将如何用 Java 编写测试用例来测试输入是否为 int?
假设您担心有人可以更改方法的输入类型。
public final void testSet() {
try {
MyClass.class.getDeclaredMethod("set", new Class[] { Integer.TYPE });
} catch (NoSuchMethodException e) {
Assert.assertFalse(true);
} catch (SecurityException e) {
e.printStackTrace();
}
}
如果返回是整数,我会写一个测试用例测试吗?
假设您担心有人可以更改方法的返回类型。顺便说一句,您在示例中返回int,所以我使用了 Integer。TYPE,如果要检查Integer ,请使用 Integer。班级
public final void testGet() {
try {
java.lang.reflect.Method m = MyClass.class.getDeclaredMethod("get", null);
Assert.assertTrue(m.getReturnType() == Integer.TYPE);
} catch (NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
}
用于测试目的的类:
public class Item {
private int number;
public Item(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
}
您的测试用例可能是:
import static org.junit.Assert.*;
public class Test {
@org.junit.Test
public void testCase1() {
Item item = new Item(1);
assertEquals(1, item.getNumber());
}
@org.junit.Test
public void testCase2() {
Item item = new Item(2);
assertEquals(2, item.getNumber());
}
}
您可以通过 assertEquals 方法验证您的业务逻辑。