簡體   English   中英

如何為opengl es2.0 android app編寫junit測試

[英]how to writing junit test for opengl es2.0 android app

我是這個Android測試的新手。 我想要的是為我的片段編寫一個junit(帶有Mockito)測試,它是帶有一個Custom GLRenderer的GLSurfaceView。

public class SuefaceViewFragment extends Fragment{

private View mRootView;

private GLSurfaceView mSurfaceView;
private CustomRenderer mRenderer;


public SurfaceViewFragment() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mRootView = inflater.inflate(R.layout.fragment_surface_view, container, false);
    initView();
    return mRootView;
}


private void initView() {
    mSurfaceView = (GLSurfaceView) mRootView.findViewById(R.id.surface_view);

    mSurfaceView .setRenderer(mRenderer);
    mSurfaceView .setZOrderMediaOverlay(true);        
    mSurfaceView .setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
}


@Override
public void onResume() {
    super.onResume();
    mSurfaceView.onResume();
}

@Override
public void onPause() {
    super.onPause();
    mSurfaceView.onPause();
}

}

這是GLSurfaceView

public class CustomRenderer implements GLSurfaceView.Renderer {




public CustomRenderer() {

}



private void init() {

    GLES20.glDisable(GLES20.GL_BLEND);
    GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

}

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    init();
}

@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
    GLES20.glViewport(0, 0, width, height);

}

@Override
public void onDrawFrame(GL10 gl) {

    render();
}

private void render() {
    GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT);

   // To Do Rendering code

}

我想使用Junit和Mockito為上述片段編寫單元測試。 可能嗎? 如果可能怎么寫?

單元測試可以測試您的業務邏輯。 它們特別不適用於涉及android sdk的任何內容(包括片段)

任何Android測試框架均無法測試GLSurfaceView。 UiAutomator和Espresso都需要一個視圖進行測試(例如單擊一個按鈕),而open gl這么快的部分原因是它不屬於視圖樹。 android唯一知道的“視圖”是GLSurfaceView。

也許可以只記錄觸摸事件並通過adb send touch事件重播它們以與應用程序進行交互。 它可以工作,但是很脆弱。

暫無
暫無

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

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