[[using-shell-testing]]
= Testing
:page-section-summary-toc: 1

ifndef::snippets[:snippets: ../../../../src/test/java/org/springframework/shell/docs]

Testing CLI application is difficult due to various reasons:

- There are differences between OS's.
- Within the same OS there may be different shell implementations in use.
- What goes into a shell and comes out from a shell may be totally
  different from what you see in the shell itself due to invisible control characters.
- The shell may feel synchronous but most likely it is not, meaning when
  something is written into it, you can't assume next update in it is not final.

NOTE: Testing support is currently under development and will be
      unstable for various parts.


