Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(669)

Unified Diff: testing/android/docs/junit.md

Issue 2882243003: Updated Robolectric documentation. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/android/docs/junit.md
diff --git a/testing/android/docs/junit.md b/testing/android/docs/junit.md
index 3fc14952a2ddcf9eb5b51b40a4f2df452178d5cb..96e16d11534c10c6884c10fbf190c04317bed88c 100644
--- a/testing/android/docs/junit.md
+++ b/testing/android/docs/junit.md
@@ -52,11 +52,17 @@ code on your workstation. It does this by providing a special version of the
Android SDK jar that can run in your host JVM. Some more information about
Robolectric can be found [here](http://robolectric.org/).
+One on the main benefits of using Robolectric framework are [shadow classes](http://robolectric.org/extending/).
+Robolectric comes with many prebuilt shadow classes and also lets you define
+your own. They work like this; whenever an object is instantiated within a
jbudorick 2017/05/15 22:56:53 nit: this; -> this:
+Robolectric test, Robolectric looks for a cooresponding shadow class (marked by
jbudorick 2017/05/15 22:56:53 nit: cooresponding -> corresponding
+`@Implements(ClassBeingShadowed.class)`). If found, anytime a method is invoked
jbudorick 2017/05/15 22:56:53 nit: any time
+on the object, the shadow class' implementation of the method is invoked first.
jbudorick 2017/05/15 22:56:53 nit: class's, I believe, as class isn't plural
+This works even for static and final methods.
+
#### Useful Tips
* Use `@RunWith(LocalRobolectricTestRunner.class)` for all Chromium Robolectric tests.
-* Use `@Config(manifest = Config.NONE)` for tests.
- Currently, you are unable to pass your app's AndroidManifest to Robolectric.
* You can specify the Android SDK to run your test with with `@Config(sdk = ??)`.
> Currently, only SDK levels 18, 21, and 25 are supported in Chromium
@@ -97,6 +103,25 @@ public class MyRobolectricJUnitTest {
}
```
+#### Example junit_binary build template.
+
+```python
+junit_binary("my_robolectric_tests") {
+
+ java_files = [
+ "java/src/foo/bar/MyJUnitTest.java"
+
+ deps = [
+ "//my/test:dependency",
+ ]
+
+ # Sets app's package name in Robolectric tests. You need to specify
+ # this variable in order for Robolectric to be able to find your app's
+ # resources.
+ package_name = manifest_package
+}
+```
+
#### Example within Chromium
See the [content_junit_tests](https://cs.chromium.org/chromium/src/content/public/android/BUILD.gn) test suite.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698