Java 使用JUnit时跳过测试类中的方法

Java 使用JUnit时跳过测试类中的方法,java,junit,Java,Junit,我有以下情况。我有一节课 A { public void setProps() { // setting propertis makeSomeWeirdConfigs(); //setting another properties } private void makeSomeWeirdConfigs() { // making configs } public Props getPro

我有以下情况。我有一节课

A  {

    public void setProps() {
        // setting propertis

        makeSomeWeirdConfigs();

        //setting another properties

    }

    private void makeSomeWeirdConfigs() {
    // making configs
    }

    public Props getProps() {
    //getting properties
    }
}
现在,我想在JUnit测试用例的帮助下,通过使用方法
setProps()
然后使用
getProps()
获取属性来检查属性是否正确设置

问题是这个方法<代码> MaqMeMealDebug()/<代码>中的代码> SETPROSPS()/<代码>,在没有适当的环境下执行时会导致很多异常,所以不设置该方法下面的道具。 另外,这个方法试图做一些危险的事情,例如执行一些脚本等。所以我的问题是,在JUnit测试用例中,是否可以跳过这个方法
makeSomeWeirdConfigs()
,这样只执行
setProps()
getProps()

原A级不应更改

感谢“不应该更改原始类”-然后您正在寻找一些模拟、字节码篡改、AOP

如果将
makeSomeWeirdConfig
设置为受保护,则可以重写该方法并测试子类。测试一个额外的标志也是如此

如果你能把代码放在一个委托器里,那就更好了

class SomeWeirdConfig {
    void makeSomeWeirdConfigs() { ... }
}

SomeWeirdConfig delegate = new SomeWeirdConfig();

public void initTest() { delegate = null; }

private void makeSomeWeirdConfigs() {
    if (delegate != null) {
        delegate.makeSomeWeirdConfigs();
    }
}    

然后测试可以禁用setter。

您可以使用Powermock模拟私有方法。您可以提供示例在这里找到一个示例: