java - 是否可以通过一次测试测试多个类

标签 java unit-testing junit

使用 JUnit4,我想做的是能够测试一组不同的 java 项目,它们都做同样的事情,而不是必须写一个测试用例来测试每个项目,我想知道是否可能编写一个可以在多个类上运行的测试?

如果使用 JUnit4 无法做到这一点,是否可以通过其他方式做到这一点?

我知道这是不对的,但这只是为了简要说明我的意思:

@Test
public void test(Class insertClassNameHere, Method nameOfMethod){
    Class insertClassNameHere = new Class();
    assertEquals(insertClassNameHere.nameOfMethod(),1);
}

最佳答案

您可以使用 JUnit 的@Parameterized。

@RunWith(Parameterized.class)
public class BehaviorTest {
    @Parameters
    public static Collection<Object[]> classesAndMethods() {
        List<Object[]> list = new ArrayList<Object[]>();
        list.add(new Object[]{ Foo.class, Foo.class.getMethod("foo") });
        return list;
    }

    private Class clazz;
    private Method method;

    public BehaviorTest(Class clazz, Method method) {
         this.clazz = clazz;
         this.method = method;
    }

    @Test
    public void testBehavior() {
        // Do stuff
    }
}

关于java - 是否可以通过一次测试测试多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778384/

相关文章:

Java 使用 JUnit 测试一个方法 (void)

java - 我的 nutch 重新抓取脚本出了什么问题

java - 由于编码问题,Maven 未能通过我的单元测试

unit-testing - Spock交互中如何匹配集合内容?

java - 使用eclipse模板创建测试用例

java - 在没有实例控制的情况下验证模拟类型的行为

java - 如何避免 ConcurrentModificationException

java - 泛型 : List<? 扩展 Animal> 是否与 List<Animal> 相同?

node.js - 如何使用 jasmine-node 对非模块进行单元测试? (与关闭 Electron 中的 Node 集成有关)

python - 我应该如何使用独特的 slug 测试 Django View