第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想在 junit 測試用例中使用私有內(nèi)部類方法(方法是公共的)。是否可以?

我想在 junit 測試用例中使用私有內(nèi)部類方法(方法是公共的)。是否可以?

忽然笑 2023-05-24 15:16:23
我在私有靜態(tài)內(nèi)部類中有一個方法。我想在我的 junit 測試用例中訪問這個方法。有可能嗎?如果有的話怎么辦?
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

即使也可以使用Reflection訪問方法privatestatic


檢查下面的示例以使用反射訪問私有方法


例子:


package demo;


public class Employee {


    private static class EmployeeInnerKlass {

        static void getText() {

            System.out.println("Employee.EmployeeInnerKlass.getText()");

        }

    }

}

class InnerKlass {


    static String getText() {

        return "Hello World";

    }

}


package demo;


import java.lang.reflect.Method;


import org.testng.annotations.Test;


public class EmployeeTest {


    @Test

    public void accessPrivateMethods() throws Throwable {

        Class<?> klassEmployee = Class.forName("demo.Employee");


        Class<?> EmployeeInnerKlass = klassEmployee.getDeclaredClasses()[0];


        //To get the "EmployeeInnerKlass" declared class in the Employee Class

        Class<?> InnerKlass = Class.forName("demo.InnerKlass");


        Method method = EmployeeInnerKlass.getDeclaredMethod("getText", null);

        method.setAccessible(true);

        method.invoke(null, null);


        Method method2 = InnerKlass.getDeclaredMethod("getText", null);

        method2.setAccessible(true);

        method2.invoke(null, null);

    }

}

我用過 TestNG 只是將它更改為 JUnit 并使用它。


查看完整回答
反對 回復 2023-05-24
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

我在私有靜態(tài)內(nèi)部類中有一個方法。我想在我的 junit 測試用例中訪問這個方法。有可能嗎?如果有的話怎么辦?

您可以做的最簡單的事情是將靜態(tài)成員類的可訪問性從私有訪問更改為包私有訪問。

這將允許您從您的 junit 測試類訪問您的成員類的非私有成員(只要它被賦予相同的包標題)。進行此更改不會影響項目的導出 API;訪問您的項目包的客戶將看不到任何新方法或成員。

當您對測試感到滿意時,您可以簡單地再次將靜態(tài)成員類設為私有。


查看完整回答
反對 回復 2023-05-24
  • 2 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號