繁体   English   中英

我如何用Java编写测试用例来测试输入是否为int?

[英]How would I write a test case in Java to test that the input is an int?

我会这样做吗?

Assert.assertTrue(value = int n);

另外,如果我有一个方法,如:

public int get(){
   return count;
}

我会为它编写什么样的测试用例? 如果返回值是整数,我会编写测试用例测试吗?

重新解决您的第一个问题 - 返回类型是一个int(因此您无需验证)。 关于你的第二个问题,如果它只是一个吸气剂,就没有必要为它编写测试。 通常,单元测试可以帮助您测试业务逻辑以及应用程序构建块的某种行为。 例如,如果我们以计数为例,您可能希望构建一个测试用例,其中的操作会以特定方式影响计数,然后断言它的预期值。 您可以在这里查看有关Java中单元测试的精彩教程。

用于测试目的的类:

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方法验证业务逻辑。

我如何用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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM