2012-11-12 12 views
7

यहां मेरी विधि है, यह ठीक काम करता है और संवाद दिखाता है।एंड्रॉइड परीक्षण: संवाद। इसे जांचें दिखा रहा है()

public void showDialog(){ 
    final Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.mylayout); 
    dialog.show(); 
} 

मैं एक परीक्षण परियोजना है और मैं परीक्षण करने के लिए है कि संवाद दिखाया गया है, चाहते हैं। मैं .isShowing() विधि को लागू करना चाहता हूं। इस तरह कुछ ...

assertTrue(dialog.isShowing()); 

लेकिन मुझे नहीं पता कि मेरे परीक्षण में संवाद चर कैसे प्राप्त करें।

मैं रोबोटियम का उपयोग नहीं कर रहा हूं (यह मेरे लिए एक विकल्प नहीं है)। मैं वर्तमान में गतिविधि UnitTestCase का परीक्षण करने के लिए उपयोग कर रहा हूँ। यदि कोई और जानकारी जरूरी है तो कृपया पूछने में संकोच न करें।

संपादित

मैं संवाद सार्वजनिक

public Dialog getDiag(){ 
    return dialog; 
} 

इस उत्तर का उपयोग करना बनाकर नीचे जवाब का उपयोग करने का प्रयास किया है: मैं एक नई समस्या है जब मैं() showDialog चलाने की परीक्षा में है, जब यह हिट होता है तो यह टूट जाता है: dialog.show();

android.view.WindowManager $ BadTokenException: - टोकन अशक्त

उत्तर

5

showDialog समारोह के बाहर संवाद घोषित और फिर एक तरीका है जिसके इस संवाद उदाहरण देता लागू * खिड़की जोड़ने में असमर्थ।

public Dialog getDiag(){ 
    return dialog; 
} 

और फिर मैं तो कम से कम अपने परीक्षण में संवाद का उपयोग कर सकते इस

assertTrue(new YourClassName().getDialog().isShowing()); 
+0

की तरह कुछ धन्यवाद मैं संवाद वापस जाने के लिए मेरी विधि बदल दिया है करते हैं,। लेकिन मैं Dialog.show() को कॉल नहीं कर सकता इसलिए मैंने इसे अपनी विधि से बाहर कर लिया है और डायलॉग लौटाए जाने के बाद मैं शो() को कॉल करूंगा (गतिविधि में)। –

संबंधित मुद्दे