Đây là một đoạn hoạt động của tôi:làm cách nào để tôi có thể thử bối cảnh bằng Mockito và Robolectric?
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();
}
}
Với dòng nhận xét trên, tôi hạnh phúc có thể tạo ra và thực hiện các bài kiểm tra đơn vị như sau:
@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"));
}
}
Tuy nhiên, nếu tôi bỏ ghi chú dòng new InitialisationTask(this).execute();
trong hoạt động của tôi, các thử nghiệm của tôi bắt đầu thất bại, rất có thể là do tham chiếu đến this
.
Cách tiếp cận tốt nhất để chế nhạo bối cảnh là gì?
Tôi đã cố gắng thêm contextMock = mock(Context.class);
vào setUp()
của tôi tuy nhiên tôi không chắc chắn làm thế nào tôi có thể thiết lập mô hình này "thành" các searchActivity
Cảm ơn
Bạn có thể chia sẻ mã của nhiệm vụ của bạn? –