मैं एंड्रॉइड जुनीट टेस्ट केस कैसे बना सकता हूं जो किसी गतिविधि के भीतर उत्पन्न इरादे की सामग्री का परीक्षण करता है?मैं एक गतिविधि से लॉन्च/भेजे गए इरादे का परीक्षण कैसे कर सकता हूं?
मुझे एक ऐसी गतिविधि मिली है जिसमें एक संपादन टेक्स्ट विंडो है, और जब उपयोगकर्ता आवश्यक डेटा दर्ज करना समाप्त कर लेता है, तो गतिविधि एक इरादा सेवा के लिए एक इरादा लॉन्च करती है जो डेटा रिकॉर्ड करती है और एप्लिकेशन प्रक्रिया के साथ जारी होती है। यहाँ वर्ग मैं परीक्षण करना चाहते हैं, OnEditorActionListener/PasscodeEditorListener एक अलग वर्ग के रूप में बनाया जाता है:
public class PasscodeActivity extends BaseActivity {
EditText m_textEntry = null;
PasscodeEditorListener m_passcodeEditorListener = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.passcode_activity);
m_passcodeEditorListener = new PasscodeEditorListener();
m_textEntry = (EditText) findViewById(R.id.passcode_activity_edit_text);
m_textEntry.setTag(this);
m_textEntry.setOnEditorActionListener(m_passcodeEditorListener);
}
@Override
protected void onPause() {
super.onPause();
/*
* If we're covered for any reason during the passcode entry,
* exit the activity AND the application...
*/
Intent finishApp = new Intent(this, CoreService.class);
finishApp.setAction(AppConstants.INTENT_ACTION_ACTIVITY_REQUESTS_SERVICE_STOP);
startService(finishApp);
finish();
}
}
class PasscodeEditorListener implements OnEditorActionListener{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
PasscodeActivity activity = (PasscodeActivity) v.getTag();
boolean imeSaysGo = ((actionId & EditorInfo.IME_ACTION_DONE)!=0)?true:false;
boolean keycodeSaysGo = ((null != event) &&
(KeyEvent.ACTION_DOWN == event.getAction()) &&
(event.getKeyCode() == KeyEvent.KEYCODE_ENTER))?true:false;
if (imeSaysGo || keycodeSaysGo){
CharSequence seq = v.getText();
Intent guidEntry = new Intent(activity, CoreService.class);
guidEntry.setAction(AppConstants.INTENT_ACTION_PASSCODE_INPUT);
guidEntry.putExtra(AppConstants.EXTRA_KEY_GUID, seq.toString());
activity.startService(guidEntry);
return true;
}
return false;
}
}
मैं गतिविधि द्वारा उत्पन्न दो संभावित आउटबाउंड उद्देश्य कैसे रोकना और उनकी सामग्री की पुष्टि कर सकते हैं?
धन्यवाद
क्या आप सिमुलेटर का उपयोग कर रहे हैं? शायद मुझे कुछ याद आ रहा है, लेकिन क्या आप इसे इस तरह से जांच नहीं सकते? – Nick
मैं सिम्युलेटर और हैंडसेट दोनों का उपयोग कर रहा हूं, हालांकि मुझे नहीं लगता कि इसमें कोई अंतर होना चाहिए। मैंने परीक्षण के तहत किसी विशेष गतिविधि में इरादों को इंजेक्ट करने के कई तरीके देखे हैं, लेकिन आउटपुट देखने के कई तरीके नहीं हैं। एक और पोस्ट देखा गया, उन्होंने ContextWrapper सेट किया और कॉल को "startService()" में अवरुद्ध कर दिया। यह पहली कॉल के लिए काम करता है, लेकिन बाद में कॉल नहीं करता है। एक गतिविधि बंद होने के बिना कई इरादों को लॉन्च कर सकती है, मुझे उन सभी को देखने/परीक्षण करने में रूचि है। –