I am working on an android app and I have created a new test project for unit tests. Where's recommended to store the test fixtures (like xml files and the like) and what's the proper way to access it ?
It depends if you really mean unit test or instrumented tests (like using espresso and stuff)...
src/test/resources
(so e.g. src/test/resources/fixture.json
)InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("fixture.json")
src/androidTest/assets/
(so e.g. src/androidTest/assets/fixture.json
)InputStream is = InstrumentationRegistry.getContext().getResources().getAssets().open("fixture.json")
Here are some examples of how you can convert InputStream
to String
.
Here's a pretty good post describing different cases.
P.S. I know this question is 6+ years old... answering for any future searches.
After some searching I found there is no one proper way to store fixtures in Android (also not so much in java either).
Fixtures are a way to provide easy and consistent data to be passed into test cases. Creating .java
classes with static methods that return objects is one way to go.
Example:
public class Pojos {
public static List<TaskListItem> taskListItems() {
return Arrays.asList(
new TaskListItem("one"),
new TaskListItem("two"),
new TaskListItem("three")
);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With