Skip to main content

Testing

Run the Maven suite with Java 25:

JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 ./mvnw test

The current suite has eight tests:

  • Five Spring-context controller tests send test_1.jpeg through test_5.jpeg to ProcessController with generated answer-key CSV data.
  • One OMR extraction test checks all five bundled sheets against hard-coded answers.
  • One OMR smoke test prints detected answers for test_3.jpeg without assertions.
  • One Spring Boot application-context test verifies that the context loads.

The five bundled images include flat scans and phone photos. The OMR assertions include a known AC double mark. Tests write debug overlays because OMR extraction has that runtime side effect.

Under the test profile, OCR is replaced by DummyOcrServiceImpl, which always returns Dummy Student. The suite does not validate Tesseract, tessdata, real OCR output, upload boundaries, malformed requests, generic 500 responses, authentication, request limits, concurrency, or behavior with layouts other than the bundled sheets.

The documentation workflow builds this site. It does not run the Maven suite and must not be treated as Spring service validation.