haveno/apitest/docs/test-categories.md
2021-05-04 20:20:01 -04:00

36 lines
1.5 KiB
Markdown

# API Test Categories
This guide describes the categorization of tests.
## Method Tests
A `method` test is the `apitest` analog of a unit test. It tests a single API method such as `getbalance`, but is not
considered a unit test because the code execution path traverses so many layers: from `gRPC` client -> `gRPC` server
side service -> one or more Bisq `core` services, and back to the client.
Method tests have direct access to `gRPC` client stubs, and test asserts are made directly on `gRPC` return values --
Java Objects.
All `method` tests are part of the `bisq.apitest.method` package.
## Scenario Tests
A `scenario` test is a narrow or broad functional test case covering a simple use case such as funding a wallet to a
complex series of trades. Generally, a scenario test case requires multiple `gRPC` method calls.
Scenario tests have direct access to `gRPC` client stubs, and test asserts are made directly on `gRPC` return values --
Java Objects.
All `scenario` tests are part of the `bisq.apitest.scenario` package.
## End to End Tests
An end to end (`e2e`) test can cover a narrow or broad use case, and all client calls go through the `CLI` shell script
`bisq-cli`. End to end tests do not have access to `gRPC` client stubs, and test asserts are made on what the end
user sees on the console -- what`gRPC CLI` prints to `STDOUT`.
As test coverage grows, stable scenario test cases should be migrated to `e2e` test cases.
All `e2e` tests are part of the `bisq.apitest.e2e` package.