Web*_*rix 0 c# java junit unit-testing mockito
我不熟悉java,但在c#(NUnit)中,您可以通过添加[TestCase]属性来参数化单元测试,如下所示:
[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们不必为每个测试用例编写单独的单元测试.相反,我们编写[TestCase]来更改值.
Java上是否有任何平等的东西?目前使用Junit 4.12
参数化是您所需要的.考虑下面的例子.请注意,test3显然是RED,因为20/5 = 4.
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class DividerTest {
private int dividend;
private int divisor;
private int expectedResult;
@Parameterized.Parameters
public static Collection<Object[]> data() {
Object[] test1 = { 10, 5, 2 };
Object[] test2 = { 15, 5, 3 };
Object[] test3 = { 20, 5, 5 };
return Arrays.asList(test1, test2, test3);
}
public DividerTest(int dividend, int divisor, int expectedResult) {
this.dividend = dividend;
this.divisor = divisor;
this.expectedResult = expectedResult;
}
@Test
public void testDivider() {
assertEquals(expectedResult, dividend / divisor);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是测试结果:
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |