Clarify docs on effect RANDOM_PORT or DEFINED_PORT has on transactions

Previously, when read too quickly, the current note may lead a user to
think that RANDOM_PORT or DEFINED_PORT directly affect transaction
management. This is not the case.

This commit attempts to clarify that the difference in transaction
behaviour is due to transactions being bound to a particular thread
and separate threads being used for the client and server when
tests are making HTTP requests.

Closes gh-9965
This commit is contained in:
pulsation 2017-08-07 15:34:44 +02:00 committed by Andy Wilkinson
parent 9f9cef1e6b
commit c9faefc562

View File

@ -5357,9 +5357,10 @@ how your tests will run:
_any_ servlet environment (mock or otherwise).
NOTE: If your test is `@Transactional`, it will rollback the transaction at the end of
each test method by default. If you're using this arrangement in combination with either
`RANDOM_PORT` or `DEFINED_PORT`, any transaction initiated on the server won't rollback as
the test is running in a different thread than the server processing.
each test method by default. However, as using this arrangement with either `RANDOM_PORT`
or `DEFINED_PORT` implicitly provides a real servlet environment, HTTP client and
server will run in separate threads, thus separate transactions. Any transaction
initiated on the server won't rollback in this case.
NOTE: In addition to `@SpringBootTest` a number of other annotations are also
provided for testing more specific slices of an application. See below for details.