小编jam*_*jam的帖子

如何将测试类包含到Maven jar中并执行它们?

在Maven项目中,我在同一个包中有测试类和源类,但是在不同的物理位置.

.../src/main/java/package/** <-- application code
.../src/test/java/package/** <-- test code
Run Code Online (Sandbox Code Playgroud)

访问测试类中的源类没有问题,但是我想在main方法中运行一个测试运行器并访问它,AllTest.class以便我可以创建jar并执行我的测试.

 public static void main(String[] args) {
    // AllTest not found
    Result result = JUnitCore.runClasses(AllTest.class);
    for (Failure failure : result.getFailures()) {
        System.out.println(failure.toString());
    }
    System.out.println(result.wasSuccessful());
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为我无法访问测试代码.我不明白,因为他们在同一个包中.

问题:如何从应用程序类访问测试类?或者,Maven如何打包包含测试类和执行测试的胖罐?

java unit-testing maven-3 maven maven-jar-plugin

27
推荐指数
1
解决办法
3万
查看次数

覆盖方法是否可以使用与基类中不同的访问说明符?

在抽象类中,哪个访问修饰符必须用于方法,因此子类可以决定它是否应该是公共的?是否可以"覆盖"Java中的修饰符?

public abstract class A {

    ??? void method();
}

public class B extends A {
    @Override
    public void method(){
        // TODO
    }
}

public class C extends B {
    @Override
    private void method(){
        // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道静态绑定会有问题,如果有人打电话:

// Will work
A foo = new B()
foo.method();

// Compiler ?
A foo = new C();
foo.method();
Run Code Online (Sandbox Code Playgroud)

但也许还有另一种方式.我怎么能做到这一点?

java abstract modifiers

21
推荐指数
3
解决办法
4417
查看次数

如何测试不良参数的所有组合?

让我们假设一个简单的方法,它抛出一IndexOutOfBoundsException 对无效的索引(2d数组).

我如何测试,所有坏指数组合都会引发异常?

(当然,如果一个电话抛出异常,这个测试将不会继续)

@Test(expected = Exception.class)
public void validateIndices(){
    check(0,-1);
    check(-1,0);
    check(0,COLS + 1);
    check(ROWS + 1, 0);
}
Run Code Online (Sandbox Code Playgroud)

是否有一种常用的方法来测试方法的参数变化?

java junit exception

10
推荐指数
2
解决办法
2174
查看次数

如何在函数调用中使用宏?

我不明白为什么函数调用中使用的宏不起作用.

#define MAX 255;
printf("max value %d", MAX);
Run Code Online (Sandbox Code Playgroud)

但这是

#define MAX 255;
int m = MAX;
printf("max value %d", m);
Run Code Online (Sandbox Code Playgroud)

在编译之前,预处理器不是替换值.他为什么抱怨?

c macros function

0
推荐指数
1
解决办法
45
查看次数