URLs (what you type into the browser's address bar) and file system paths are two different things. Whilst URLs can map to file system paths, this is not always the case. And with WordPress and many popular database driven CMSs these days, this is not the case.
When you make a request for
/test-post/ on a WordPress site, WP intercepts the request and internally directs it to
/index.php (the physical file on the file system that actually handles the request). This is entirely hidden from the user; the user only sees the URL in the address bar. WP then looks at the URL (ie.
/test-post/) and decides what to do with it (ie. route it)... creates a page and sends the response.
Without WordPress intercepting the request, the web server will indeed try and map the URL to a file system path. A request for
/test-post/ will instruct the web server to look for a directory called
/test-post. If that directory exists, then it will look for a default index document inside that directory (eg.
index.html). If nothing has intercepted the request and if the URL does not map to a file system path then the server will return a 404 Not Found (or 403 Forbidden in some cases).