mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# Unit testing Java code
|
|
|
|
All Java code in the engine should now be able to be tested with Robolectric 3.8
|
|
and JUnit 4. The test suite has been added after the bulk of the Java code was
|
|
first written, so most of these classes do not have existing tests. Ideally code
|
|
after this point should be tested, either with unit tests here or with
|
|
integration tests in other repos.
|
|
|
|
## Adding a new test
|
|
|
|
1. Create a file under `test/` matching the path and name of the class under
|
|
test. For example,
|
|
`shell/platform/android/io/flutter/util/Preconditions.java` ->
|
|
`shell/platform/android/**test**/io/flutter/util/Preconditions**Test**.java`.
|
|
2. Add your file to the `sources` of the `robolectric_tests` build target in
|
|
`/shell/platform/android/BUILD.gn`. This compiles the test class into the
|
|
test jar.
|
|
3. Add your class to the `@SuiteClasses` annotation in `FlutterTestSuite.java`.
|
|
This makes sure the test is actually executed at run time.
|
|
4. Write your test.
|
|
5. Build and run with `testing/run_tests.py [--type=java] [--java-filter=<test_class_name>]`.
|
|
|
|
## Q&A
|
|
|
|
### My new test won't run. There's a "ClassNotFoundException".
|
|
|
|
See [Updating Embedding Dependencies](../embedding_bundle).
|
|
|
|
### My new test won't compile. It can't find one of my imports.
|
|
|
|
See [Updating Embedding Dependencies](../embedding_bundle).
|