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
pull/9989/merge
pulsation 7 years ago committed by Andy Wilkinson
parent 9f9cef1e6b
commit c9faefc562

@ -5357,9 +5357,10 @@ how your tests will run:
_any_ servlet environment (mock or otherwise). _any_ servlet environment (mock or otherwise).
NOTE: If your test is `@Transactional`, it will rollback the transaction at the end of 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 each test method by default. However, as using this arrangement with either `RANDOM_PORT`
`RANDOM_PORT` or `DEFINED_PORT`, any transaction initiated on the server won't rollback as or `DEFINED_PORT` implicitly provides a real servlet environment, HTTP client and
the test is running in a different thread than the server processing. 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 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. provided for testing more specific slices of an application. See below for details.

Loading…
Cancel
Save