簡體   English   中英

Android單元測試-模擬內部類方法

[英]Android Unit test - mock inner class method

類A具有創建類B的新實例並調用Android API功能的方法。

Class A{

    public void foo(){
        B b = new B();

        //some code

        b.callAndroidAPI()

        //some code

    }
}

我該如何對b類foo()方法進行單元測試。 有沒有辦法在調用foo()之前重寫/模擬callAndroidAPI()? 謝謝!

您可以將“新建”創建移動到另一個方法,然后使用模擬覆蓋該方法:

Class A {

B getB() {
  return new B();
}

public void foo(){
    B b = getB();

    //some code

    b.callAndroidAPI()

    //some code

}

}

然后在測試中,您可以覆蓋getB調用。

@Test
public void testBFoo() {
    A a = new A() {
        B getB() {
          return bMocked;
        }
    }

    // verify interactions
}

另外,我最近也寫了這本書: http : //www.adavis.info/2015/11/testing-tricks-1-dealing-with-new.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM