通过Espresso测试时如何从Asset文件夹中读取json文件?

赫萨姆

我正在尝试基于.json文件创建一些假对象。因此,我的项目的架构如下所示:

- MyProject
- app
---- src
-------- androidTest
------------ assets
---------------- FirstObject.json
---------------- SecondObject.json
------------ java
-------- main
-------- test

我正在使用Espresso进行测试,并且.json文件assets有一些文件

我的测试课看起来像这样:

@RunWith(AndroidJUnit4.class)
public class LocatingActivityTest
{
    @Rule
    public ActivityTestRule<BookingActivity> mActivityTestRule = new ActivityTestRule<>(BookingActivity.class);

    private BookingActivity mBookingActivity;

    @Before
    public void setup()
    {
        mBookingActivity = mActivityTestRule.getActivity();
    }

    @Test
    public void viewsMustBeVisible()
    {
        onView(withId(R.id.fab_booking)).perform(click());
        onView(withId(R.id.booking_book_now)).check(matches(not(isEnabled())));

        mBookingActivity.setTestBooking(BookingTest.getStandardFlight(),
                MyServiceProvider.getServices1(mBookingActivity), // <= Problem
                true,
                MyServiceProvider.getServices2(mBookingActivity), // <= Problem
                MyServiceProvider.getServices3(mBookingActivity)); // <= Problem

        onView(withId(R.id.booking_book_now)).check(matches(isEnabled()));
        onView(withId(R.id.booking_book_now)).perform(click());

        onView(withId(R.id.text)).check(matches(isCompletelyDisplayed()));
        onView(withId(R.id.sonarView)).check(matches(isCompletelyDisplayed()));
        onView(withId(R.id.cancel_booking)).check(matches(isCompletelyDisplayed()));
    }
}

问题出在我MyServiceProvider班上:

public final class MyServiceProvider
{
    public static List<FlightType> getServices1(Context context)
    {
        try
        {
            InputStream inputStream = context.getAssets().open("FlightTypes.json");
            String jsonString = read(inputStream);
            Log.e("XXX", "getServices1() => " + jsonString);
            Type listType = new TypeToken<List<FlightType>>(){}.getType();
            List<FlightType> flightTypeList = new Gson().fromJson(jsonString, listType);

            return flightTypeList;
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        return null;
    }

    private static String read(InputStream inputStream) throws IOException
    {
        StringWriter writer = new StringWriter();
        IOUtils.copy(inputStream, writer, "UTF-8");
        return writer.toString();
    }
.
.
.
}

由于某些原因InputStream inputStream = context.getAssets().open("FlightTypes.json");,无法打开json文件并引发异常。这是我的日志:

02-17 21:00:58.984 5686-5706/com.xxx.xxx W/System.err: java.io.FileNotFoundException: FlightTypes.json
02-17 21:00:58.984 5686-5706/com.xxx.xxx W/System.err:     at android.content.res.AssetManager.openAsset(Native Method)
02-17 21:00:58.984 5686-5706/com.xxx.xxx W/System.err:     at android.content.res.AssetManager.open(AssetManager.java:313)
02-17 21:00:58.984 5686-5706/com.xxx.xxx W/System.err:     at android.content.res.AssetManager.open(AssetManager.java:287)
02-17 21:00:58.984 5686-5706/com.xxx.xxx W/System.err:     at com.xxx.xxx.utility.MyServiceProvider.getServices1(MyServiceProvider.java:31)
格林罗伯

不要将活动作为上下文传递。而是通过InstrumentationRegistry.getContext()看看是否有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过bash读取文件夹中的任何.txt文件

来自分类Dev

读取Jersey来源文件夹中的JSON文件

来自分类Dev

Python:从文件夹中读取多个json文件

来自分类Dev

从ChatBot的项目文件夹中读取JSON文件

来自分类Dev

在Javascript中,在本地工作时,如何从项目文件夹读取文件以将其用作ArrayBuffer?

来自分类Dev

按下按钮时如何从资产文件夹中读取随机文本文件?

来自分类Dev

如何读取Bash Shell中多个文件夹和子文件夹中的文件

来自分类Dev

如何从jQuery中的文件夹读取文件?

来自分类Dev

如何使用python从文件夹中读取xml文件?

来自分类Dev

如何强制Matlab顺序读取文件夹中的文件?

来自分类Dev

如何从flask的静态文件夹中读取文件?

来自分类Dev

Swift:如何从文件夹中读取文件

来自分类Dev

如何读取位于项目文件夹Java中的文件

来自分类Dev

如何读取文件夹中的文件内容

来自分类Dev

如何仅读取 Region 文件夹中的 Sales 文件?

来自分类Dev

如何调用外部json文件或文件夹中的文件

来自分类Dev

如何从文件夹读取文件

来自分类Dev

如何通过gradle在特定文件夹中运行jUnit测试?

来自分类Dev

从可绘制文件夹中读取图像时出错

来自分类Dev

如何通过主文件夹从许多子文件夹中获取文件?

来自分类Dev

如何通过主文件夹从许多子文件夹中抓取文件?

来自分类Dev

如何通过文件夹名将文件保存到文件夹中?

来自分类Dev

如何通过python读取同一文件夹中多个docx文件中的表格

来自分类Dev

如何通过文件夹创建循环以在 R 中的相应文件夹中写入栅格?

来自分类Dev

如何从目录或文件夹中读取重复的单词数

来自分类Dev

如何使用python读取文件夹中的最新图像?

来自分类Dev

如何从多个文件夹中读取图像?

来自分类Dev

如何创建多个文件夹并通过从文本文件中读取行来命名它们?

来自分类Dev

如何在测试文件夹中运行主类?

Related 相关文章

  1. 1

    通过bash读取文件夹中的任何.txt文件

  2. 2

    读取Jersey来源文件夹中的JSON文件

  3. 3

    Python:从文件夹中读取多个json文件

  4. 4

    从ChatBot的项目文件夹中读取JSON文件

  5. 5

    在Javascript中,在本地工作时,如何从项目文件夹读取文件以将其用作ArrayBuffer?

  6. 6

    按下按钮时如何从资产文件夹中读取随机文本文件?

  7. 7

    如何读取Bash Shell中多个文件夹和子文件夹中的文件

  8. 8

    如何从jQuery中的文件夹读取文件?

  9. 9

    如何使用python从文件夹中读取xml文件?

  10. 10

    如何强制Matlab顺序读取文件夹中的文件?

  11. 11

    如何从flask的静态文件夹中读取文件?

  12. 12

    Swift:如何从文件夹中读取文件

  13. 13

    如何读取位于项目文件夹Java中的文件

  14. 14

    如何读取文件夹中的文件内容

  15. 15

    如何仅读取 Region 文件夹中的 Sales 文件?

  16. 16

    如何调用外部json文件或文件夹中的文件

  17. 17

    如何从文件夹读取文件

  18. 18

    如何通过gradle在特定文件夹中运行jUnit测试?

  19. 19

    从可绘制文件夹中读取图像时出错

  20. 20

    如何通过主文件夹从许多子文件夹中获取文件?

  21. 21

    如何通过主文件夹从许多子文件夹中抓取文件?

  22. 22

    如何通过文件夹名将文件保存到文件夹中?

  23. 23

    如何通过python读取同一文件夹中多个docx文件中的表格

  24. 24

    如何通过文件夹创建循环以在 R 中的相应文件夹中写入栅格?

  25. 25

    如何从目录或文件夹中读取重复的单词数

  26. 26

    如何使用python读取文件夹中的最新图像?

  27. 27

    如何从多个文件夹中读取图像?

  28. 28

    如何创建多个文件夹并通过从文本文件中读取行来命名它们?

  29. 29

    如何在测试文件夹中运行主类?

热门标签

归档