首页 文章

需要对java代码进行junit测试,以检查数字是否是其他数字的幂

提问于
浏览
1

我是JUnit测试的初学者,我对测试有一些疑问 . 我的Java代码是:检查数字(整数)是否是其他数字(整数)的幂,并返回布尔值True / False . 只有一个名为isPower(int x,int y)的方法计算if(x%y)== 0,这是我的代码的简短表示 .

我想知道如果只返回true或false,我应该对这个Java代码进行哪种测试,我应该创建setup()和teardown()函数?

1 回答

  • 1

    不需要 setup()teardown() 因为没有什么可以设置的 . 通常在设置数据库,服务等环境时使用这些 . 在您的情况下,您可能有一个类具有一个(静态)方法 .

    通常的做法是测试边缘情况,即负数,0,最大数字,并让您的测试通过测试代码清楚地记录您期望发生的事情 . 让我们说你的测试不应该在任何输入上抛出异常,因为你正在划分而不是乘法 . 尝试 Integer.MIN_VALUEInteger.MAX_VALUE 为每个和两个 .

    一些单元测试框架可以生成随机数据作为测试的输入,以便测试所有边缘情况 .

    一个小例子:

    @Test
    public void test_nominator_nonzero_denominator_zero() {
       MyClass mathObject = new MyClass();
       assertFalse("0 can't be a divisor of a non-zero number", mathObject.isPower(5, 0));
    }
    

    你的问题听起来像是一个找到除数或X因子的函数的描述 .

相关问题