wie kann ich verspotte Zusammenhang mit Mockito und Robolectric?

Dies ist ein Ausschnitt meiner Tätigkeit :

public class Search extends Activity
{
    private String TAG = "SEARCH";

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);
        Log.d(TAG, "About to call initialastion");
   //       new InitialisationTask(this).execute();
    }
}

Mit der obigen Zeile kommentiert, kann ich gerne erstellen und ausführen von unit-tests wie so :

@RunWith(RobolectricTestRunner.class)
public class SearchTest {
    private Search searchActivity;
    private Button searchButton;
    private Button clearButton;
    private Button loginButton;
    private Button registerButton;
    private EditText searchEditText;

    @Before
    public void setUp() throws Exception {
        searchActivity = new Search();
        searchActivity.onCreate(null);

        searchButton = (Button) searchActivity.findViewById(R.id.btnPlateSearch);
        clearButton = (Button) searchActivity.findViewById(R.id.btnClearSearch);
        loginButton = (Button) searchActivity.findViewById(R.id.btnLogin);
        registerButton = (Button) searchActivity.findViewById(R.id.btnRegister);
        searchEditText = (EditText) searchActivity.findViewById(R.id.editTextInputPlate);
    }


    @Test
    public void assertSearchButtonHasCorrectLabel()
    {
        assertThat((String) searchButton.getText(), equalTo("Search"));
    }
}

Jedoch, wenn ich die Auskommentierung der Zeile new InitialisationTask(this).execute(); in meine Tätigkeit, meine tests beginnen zu Versagen, wahrscheinlich, weil der Verweis auf this.

Was ist der beste Ansatz für Spott Kontext?

Habe ich versucht, um contextMock = mock(Context.class); in meine setUp() aber ich bin nicht sicher, wie ich das einstellen kann das mock "in" die searchActivity

Dank

Kann man teilen-code Ihrer Aufgabe?

InformationsquelleAutor Jimmy | 2012-05-23

Schreibe einen Kommentar