Java 用分数进行Junit测试
我在寻找一些关于JUnit测试的建议 我了解基本知识,但我不确定这一点。它测试分数的最大公约数Java 用分数进行Junit测试,java,junit,Java,Junit,我在寻找一些关于JUnit测试的建议 我了解基本知识,但我不确定这一点。它测试分数的最大公约数 // Greatest Common Divisor public static int gcd(int x, int y) { return (y == 0) ? x : gcd(y, x % y); } 这是JUnit测试 @Test public void testGcd() { fail("Not yet implemented"); }
// Greatest Common Divisor
public static int gcd(int x, int y) {
return (y == 0) ? x : gcd(y, x % y);
}
这是JUnit测试
@Test
public void testGcd() {
fail("Not yet implemented");
}
如有任何建议,将不胜感激。谢谢首先,您需要进行多次测试才能确认功能是否正确。每个测试用例都应该对gcd(x,y)返回的值做出一个断言,如下所示:
@Test
public void testGcd111_259() {
assertEquals(37, gcd(111, 259));
}
您需要包括其他测试,以检查您的gcd
在以下情况下是否正常工作:
- 两个数字中有一个是零
- 两个数字都是零
- 这些数字是相等的
- 两个数字中的一个是
1
- 这两个数字中有一个是素数
- 两个数字都是素数
- 不带素数的数互质
class GCDTest extends Specification {
def "greatest common denominator of two numbers"() {
expect:
MyMathUtils.gcd(a, b) == c
where:
a | b | c
1 | 1 | 1
2 | 1 | 1
2 | 2 | 2
10 | 15 | 5
111 | 259 | 37
}
}
您可以从实现单元测试开始。教程。我不清楚问题是什么。我的意思是,基本上你要测试已知的输入和输出,并练习条件。好吧,想想这段代码可能会失败的地方。它能做一个简单的gcd吗?它是否处理其中一个或两个输入为零的情况?等等,等等。为每个考虑事项编写一个测试用例。删除
fail
并用测试对259和111替换它。