AssertionFailedError in ApplicationTestCase.createApplication() in newer Android versions when using MockContext

前端 未结 2 2391
名媛妹妹
名媛妹妹 2021-02-20 15:46

I am writing an Android ApplicationTestCase (TemperatureConverterApplicationTests example found in Android Application Testing Guide by Diego T. Milano on page 171). Th

2条回答
  •  被撕碎了的回忆
    2021-02-20 16:24

    The Instrumentation.newApplication() method will return an Application object. You are trying to cast it to whatever T is. If T is not a super class or sub class of Application you will get a ClassCastException. In Java you can only cast an object to something that is a super class or sub class of that object. If it isn't then the exception will be thrown.

    FOR EXAMPLE:

    Object x = new Integer(0);
    System.out.println((String)x);
    

    This will throw a ClassCastException on the second line because your trying to cast x (an Integer object) to a String. Because a String and Integer are not sub or super classes of each other.

提交回复
热议问题