Hermetic Server is a Server when an entire server on a single machine which has no network connection and when the server works as expected.
Hermetic Servers are used to perform many End-to-End tests. Below are the few cases.
- Startup tests for servers using Guice to verify that there are no Guice errors on startup.
- API tests for backend servers.
- Micro-benchmark performance tests.
- U and API test for FrontEnd Servers
Hermetic Servers used in Test:
The end-to-end test does the following steps:
• starts the entire SUT as shown in the diagram on a single machine
• makes requests to the server via the test client
• validates responses from the server
The mock server connection for the backend is not needed in this test. If we wish to test, a request that needs this backend, we would have to provide a hermetic server at that connection point as well.
Hermetic servers do have some limitations. It will increase the test’s runtime since you have to start the entire SUT each time you run the end-to-end test. If test runs with limited resources such as memory and CPU, hermetic servers push your test over those limits, as the server interactions grow in complexity.
Hermetic servers are a great testing tool. Like all other tools, they need to be used thoughtfully where appropriate.