I think Renato provided helpful details, but I'll add a little more detail based on my comments per request.
Approval Processes are defined as metadata. As such, they cannot be created in normal Apex code. While it's possible to make a callout in Apex to the Metadata API to create and insert an Approval Process (using, for example, the apex-mdapi library), this is not possible in a test context. Tests are never to have side effects that persist beyond their execution, and you cannot make callouts in a test context at all.
In most cases, your code is not expected to mock or generate metadata upon which it depends. (One major exception to that statement is Custom Metadata records, which are intended for providing deep customization of code and can require mocking in unit tests).
If your code depends on the presence of this approval process, you should likely deploy the code and the associated metadata in a single operation, whether that is a change set or a package deployed via Salesforce DX, the Force.com Migration Tool (Ant), Workbench, or some other Metadata API-based tool. You can include the approval process in your package.xml
, and must also include any other metadata that the approval process depends on - like custom fields, workflow updates, and email templates.