AMcoder - javascript, python, java, html, php, sql

Robolectric մաքսային ստվերային կոդը

Ողջույն, ամեն անգամ, երբ ես ստանում եմ այս բացառության հետքը Robolectric-ի հետ հատուկ ստվերների վրա աշխատելիս

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.robolectric.bytecode.RobolectricInternals.newInstanceOf(RobolectricInternals.java:33)
    at org.robolectric.Robolectric.newInstanceOf(Robolectric.java:345)
    at org.robolectric.shadows.ShadowBitmapFactory.create(ShadowBitmapFactory.java:120)
    at org.robolectric.shadows.ShadowBitmapFactory.decodeFile(ShadowBitmapFactory.java:72)
    at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java)

այն, ինչ ես անում եմ, այն է, որ ես հատուկ ստվեր ունեմ

@Implements(Bitmap.class)
class MyShadowBitmap extends org.robolectric.shadows.ShadowBitmap {

    public MyShadowBitmap() {
        // can also be some other config value
        setConfig(Bitmap.Config.ARGB_8888);
    }

}

և ես օգտագործում եմ այս դասը

public class CustomTestRunner extends RobolectricTestRunner {
    public CustomTestRunner(Class<?> testClass) throws InitializationError {
        super(testClass);
    }
    @Override
       public Setup createSetup() {
           return new MySetup();
       }
    @Override
    protected ShadowMap createShadowMap() {
        return super.createShadowMap()
                .newBuilder()
                .addShadowClass(MyShadowBitmap.class)

                .build();
    }
    }
}

և նաև ես վարում եմ իմ թեստային գործերը որպես

@Test
    @Config(shadows = {
        MyShadowBitmap.class
    })

խնդրում եմ օգնեք ինձ, թե որտեղ եմ ես սխալ անում և ինչպես աշխատել ռոբոլեկտիկական հատուկ ստվերների հետ:

11.04.2014

  • Դուք լուծել եք սա: Եթե ​​այո, խնդրում ենք ընտրել պատասխանը: 18.05.2015

Պատասխանները:


1

Ես ինքս բավականին նոր եմ ռոբոէլեկտրակայանում, բայց կարծում եմ, որ դուք պետք է այլ կերպ սահմանեք ստվերի կոնստրուկտորը, օրինակ՝

public void __constructor__() և ոչ սովորական public MyShadowBitmap()

Տես այստեղ՝ http://robolectric.org/extending/ (Stadowing Constructors բաժինը )

19.06.2014

2

Ես նույնպես բավականին նոր եմ Robolectric-ում, բայց ես ստեղծել եմ shadowImageView, որն աշխատում է: Դուք կարող եք դիտել այս կոդը՝ https://github.com/jiahaoliuliu/RobolectricSample/tree/roboMockitoTutorial

Սխալներ, որոնք պետք է ուղղել.

  1. Դուք կարող եք կոնֆիգուր ունենալ դասի հայտարարման վրա, թեստի փոխարեն:
  2. Բոլոր ստվերային մեթոդները պետք է ունենան @Implementation նշում
  3. Կոնստրուկտորը չի կարող ստվերվել

Ահա իմ Shadow Class-ի կոդը՝ քաղված Robolectric վեբ էջից.

package com.jiahaoliuliu.robolectricsample;

import android.graphics.Bitmap;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.shadows.ShadowBitmap;

import java.io.OutputStream;

/**
 * Created by jiahao on 2/15/15.
 */
@Implements(Bitmap.class)
public class MyShadowBitmap extends ShadowBitmap {
    @RealObject
    private Bitmap realBitmap;
    private int bitmapQuality = -1;

    @Implementation
    public boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream) {
        bitmapQuality = quality;
        System.out.println("Using the shadow to compress");
        return true;
    }
}

Հաջողություն!

16.02.2015
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..