java - अंतिम कक्षा का नकली बनाने के लिए मॉकिटो-कोर का उपयोग करें?



android mocking (1)

मैं गिटब उदाहरण में मिलता हूं कि स्टैंडआउट मॉकिटो के साथ अंतिम कक्षा (ब्लूटूथ गैट। क्लास) का उदाहरण कैसे दिखाता है:

...
@RunWith(RobolectricTestRunner.class)
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class OnBoardingServiceTest {

    private BluetoothGattCharacteristic characteristic;
    private OnBoardingService service;
    private BluetoothGattReceiver receiver = new BluetoothGattReceiver();

    @Before public void initialise() {
        BleDevice bleDevice = mock(BleDevice.class);
        when(bleDevice.getType()).thenReturn(BleDeviceType.WunderbarMIC);
        BluetoothGatt gatt = mock(BluetoothGatt.class);
...

लेकिन मॉकिटा अकसर किये गए सवाल से :

मोकीटो की सीमाएं क्या हैं

  • जावा 1.5+ की आवश्यकता है
  • अंतिम कक्षाओं का नकली नहीं कर सकते
  • ...

मैंने जाँच लिया कि यह मानक एंड्रॉइड-एसडीके से ब्लूटूथ गैट है, इसलिए यह नकली अंतिम श्रेणी की तरह दिखता है। अब मुझे यह सुनिश्चित करने के लिए परियोजना का निर्माण करने की कोशिश है, कि यह परीक्षण काम कर रहा है। यह नकली अंतिम वर्ग को मूल मॉकिटो के साथ कैसे बना सकता है? और यदि यह कोड अंततः काम नहीं कर रहा है, तो क्या आपको कोई विचार है कि एंड्रॉइड इंस्ट्रूमेंटेशन टेस्टिंग के लिए अंतिम कक्षा का नकली कैसे बना है? (मैं पहले से ही पावरमॉक का उपयोग कर रहा हूं )। धन्यवाद


रोबोलेटिक को अंतिम कक्षाओं और विधियों सहित एंड्रॉइड मानक कक्षाओं के कार्यान्वयन और बनाने के लिए डिज़ाइन किया गया है। हुड के तहत, यह पावरमोकिटो के बहुत ही समान तरीके से काम करता है, अपने स्वयं के क्लासलोडर का इस्तेमाल करने वाले क्लासपाथ को स्थापित करने के लिए जो अपने स्वयं के मोज़े का समर्थन करता है

Robolectric में Android कक्षाओं के नकली कार्यान्वयन छाया कहा जाता है , और पुस्तकालय अधूरा है; आप शायद एक कस्टम छाया बनाना चाहते हैं जो आपकी आवश्यकताओं के अनुरूप है।

यह अभी भी विधि कॉल के लिए Mockito का उपयोग करना आसान नहीं है, लेकिन आप अपने छाया की घटनाओं को प्राप्त करने के लिए रोबौलिक्रिक तरीकों का उपयोग कर सकते हैं, और श्लेष कार्यान्वयन लिख सकते हैं जो विधि तर्कों को उदाहरणों में सहेजते हैं (और आगे)।





android-instrumentation