| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Unit tests to validate the JSON-Java GitHub project code
https://github.com/douglascrockford/JSON-java
Gradle and Eclipse is the recommended build tool and IDE.
Run individual tests or JunitTestSuite using EclEmma Coverage, or execute the TestRunner application directly.
The following libraries are required:
To build from the command line using gradle:
Until the unit tests are merged into the JSON-Java project, the code has to be wired by hand.
# In an empty directory of your choice, clone JSON-Java-unit-test:
git clone https://github.com/stleary/JSON-Java-unit-test.git .
# Create a directory structure for the JSON-Java code
# Windows version md /s src\main\java\org\json # *nix version mkdir -p src/main/java/org/json
# clone JSON-Java
#Windows version git clone https://github.com/stleary/JSON-Java.git src\main\java\org\json #*Nix version git clone https://github.com/stleary/JSON-Java.git src/main/java/org/json
# Build, then execute the unit tests and code coverage
gradle clean build test jacocoTestReport
Unit test results will be in build\reports\tests\index.html
Code coverage will be in build\reports\jacoco\html\index.html
To create an Eclipse project, you will need the Eclipse Gradle plug-in, available from the Eclipse Marketplace. I am currently using Gradle IDE 3.6.4.201503050952-RELEASE
Select File > Import > Gradle > Gradle project
Browse to the directory where you cloned JSON-Java-unit-test
Select Build model
Select built project
Conventions
Test filenames should consist of the name of the module being tested, with the suffix "Test".
For example, Cookie.java is tested by CookieTest.java.
When adding a new unit test, don't forget to update JunitTestSuite.java.
The fundamental issues with JSON-Java testing are:
General issues with unit testing are:
When you start working on a test, add the empty file to the repository and update the readme, so that others will know that test is taken.
A unit test has the following stages:
| Test phase | Description |
|---|---|
| No test | No test specifically for this class has been written, or the class contains no executable code. |
| In progress | Unit tests have been started for this class. |
| Coverage > 90% | Initial goal of 90% coverage has been reached. Test quality may be questionable |
| Reasonable test cases | 90% coverage. Functionality and behavior has been confirmed |
| Checked against previous unit tests | Historical unit tests have been checked in case something important was missed |
| Completed | The unit test is completed |
| Test file name | Coverage | Comments |
|---|---|---|
| Total coverage | 90.6% | |
| CDL.java | 98.8% | Reasonable test cases. |
| Cookie.java | 98.9% | Reasonable test cases. |
| CookieList.java | 96.5% | Reasonable test cases. |
| EnumTest.java | n/a | Just documenting how enums are handled. |
| HTTP.java | 98.7% | Coverage > 90% |
| HTTPTokener.java | 93.2% | No test |
| JSONArray.java | 95.9% | Reasonable test cases |
| JSONException.java | 26.7% | No test |
| JSONML.java | 86.8% | In progress |
| JSONObject | 94.0% | Reasonable test cases |
| JSONObject.Null | 87.5% | No test |
| JSONString.java | No test | |
| JSONStringer.java | 93.8% | Coverage > 90% |
| JSONTokener.java | 72.1% | In progress |
| JSONWriter.java | 87.5% | No test |
| Property.java | 94.8% | Coverage > 90% |
| XML.java | 87.4% | In progress |
| XMLTokener.java | 82.7% | No test |
| Files used in test |
|---|
| MyBean.java |
| MyBigNumberBean.java |
| MyEnum.java |
| MyEnumClass.java |
| MyEnumField.java |
| MyJsonString.java |
| MyPublicClass.java |
| PropertyTest.java |
| JunitTestSuite.java |
| StringsResourceBundle.java |
| TestRunner.java |
| Util.java |
| Back | FazBrowse Home | New Git URL |