<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 88, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Junit @AfterClass訪問注入對象的方法

    Posted on 2017-04-15 10:32 Milo的海域 閱讀(592) 評論(0)  編輯  收藏 所屬分類: Java
    Spring默認不允許對類的變量, 也就是靜態變量進行注入操作, 但是在某些場景比如單元測試的@AfterClass要訪問注入對象, 而Junit的這個方法必須是靜態的, 也就產生了悖論;

    解決思路有兩個:

    • 思路1: 想辦法對靜態變量注入, 也就是繞過Spring只能運行非靜態變量才能注入依賴的壁壘
    • 思路2: 想辦法@AfterClass改造為非靜態
      • 實現Junit RunListener, 覆蓋testRunFinished方法, 這里去實現類似@AfterClass的功能, 這個方法是非靜態的
      • 不要用Junit, 改用TestNG, TestNG里的AfterClass是非靜態的
      • 用Spring的TestExecutionListeners, 實現個Listener, 里面也有個類似非靜態的AfterClass的實現, 覆蓋實現就行

    思路2的幾個方法都可以實現, 但是單元測試Runner需要用

    @RunWith(Theories.class)

    而且改用TestNG工程浩大, 只能放棄掉這個思路

    繼續走思路1, 只能去繞過Spring的依賴注入的static壁壘了, 具體代碼如下:

    @Autowired
    private Destination dfsOperationQueue;
    private static Destination dfsOperationQueueStatic; // static version
    @Autowired
    private MessageQueueAPI messageQueueAPI;
    private static MessageQueueAPI messageQueueAPIStatic; // static version


    @PostConstruct
    public void init() {
    dfsOperationQueueStatic = this.dfsOperationQueue;
    messageQueueAPIStatic = this.messageQueueAPI;
    }

    @AfterClass
    public static void afterClass() {
    MessageVO messageVO = messageQueueAPIStatic.removeDestination(dfsOperationQueueStatic);
    System.out.println(messageVO);
    }

    其實就是用了@PostConstruct 來個偷梁換柱而已, 多聲明個靜態成員指向非靜態對象, 兩者其實是一個對象

    主站蜘蛛池模板: 一个人免费观看日本www视频| 亚洲综合精品伊人久久| 一区免费在线观看| 国产免费私拍一区二区三区 | 亚洲国产精品成人网址天堂| 亚洲乱码日产精品一二三| 成人午夜免费福利| 久久精品国产亚洲av天美18 | 亚洲国产亚洲片在线观看播放| 91免费在线播放| 国产 亚洲 中文在线 字幕| 成人性生交大片免费看无遮挡| 亚洲人成电影网站色| 国产免费直播在线观看视频| 二级毛片免费观看全程| 在线a亚洲v天堂网2019无码| 日本免费电影一区二区| 亚洲国产成人资源在线软件 | 亚洲jjzzjjzz在线播放| 成人毛片手机版免费看| 牛牛在线精品观看免费正| 亚洲精品国产品国语在线| www视频免费看| 99亚洲乱人伦aⅴ精品| 亚洲亚洲人成综合网络| 蜜桃AV无码免费看永久| 色偷偷亚洲第一综合网| 亚洲精品无码精品mV在线观看| 精品国产污污免费网站aⅴ| 久久精品国产亚洲AV未满十八| 亚洲国产三级在线观看| 99热在线精品免费全部my| 一级美国片免费看| 亚洲国产精品综合久久2007| 免费永久看黄在线观看app| 暖暖免费日本在线中文| 国产精品亚洲综合天堂夜夜| 亚洲宅男永久在线| jjzz亚洲亚洲女人| 免费观看黄色的网站| 一级成人毛片免费观看|