As a matter of fact, all automated tests of the Git project are powered by a shell-based TAP harness, which tests executable commands only.
To be fair, there are some dedicated C tools driving unit tests via CLI, but most of the tests are based on the final plumbing and porcelain commands.