/var/log/messages

Mar 23, 2014 - 2 minute read - Comments - android

android-test-kit

とりあえず、今は standalone な espresso を使っているようなので dependencies 版を入手して展開することに。

以下で入手なのかな。

$ git clone https://code.google.com/p/android-test-kit/

で、以下によれば

hamcrest-core-.jar と hamcrest-integration-.jar はスルーなのかどうか。

展開して ls したら以下な出力。

$ ls bin/espresso-dependencies/
dagger-1.1.0.jar           
dagger-compiler-1.1.0.jar  
espresso-1.1.jar  
guava-14.0.1.jar  
hamcrest-core-1.1.jar         
hamcrest-integration-1.1.jar  
hamcrest-library-1.1.jar  
javawriter-2.1.1.jar      
javax.annotation-api-1.2.jar  
javax.inject-1.jar            
jsr305-1.3.9.jar    
testrunner-runtime-1.1.jar
testrunner-1.1.jar

とりあえず branch 作って着手。あと以下からポインタを手繰って mockito-*.zip を入手。

で、試験を動かそうとしたのですが GITR なシンボルの解決ができぬ、と叱られています (com.google.android.apps)。Build -> clean Project したら今度は com.google が解決できない模様。

解決

ツールバーの Sync Project with Gradle Files で解決したみたいです。とりあえず既存な試験もパスしていることを確認。

volley を使ってる実装の試験の方法 how-to-test-program-using-volley [android]

HttpStack を継承した FakeHttpStack を作っておいて

    mRequestQueue = Volley.newRequestQueue(getActivity());

みたいな事してる箇所のソレを mockito で云々すれば良いのかな。例えば詳細略で以下なソレをでっちあげておいて

public class FakeRequestQueue extends RequestQueue {
    public FakeRequestQueue(Context context) {
        super(new NoCache(), new BasicNetwork(new FakeHttpStack(context)));
    }
}

mRequestQueue は setter なメソド作っておいて以下で良いのかどうか。

あ、違うな。

これってありなのかな。

Mockito.when(Volley.newRequestQueue(getActivity())
    .thenReturn(new FakeRequestQueue(getActivity()));

あるいは以下?

Mockito.when(new HurlStack())
    .thenReturn(new FakeHttpStack())

別途試してみてログを出力な方向にて。

追記

どうもコンストラクタは無理みたい。PowerMock なるものがあるらしいですが。あと、static なメソドも無理らしい。今日はこれで終わりということで。