I find that using the plutus PAB simulator is the best way to first test out your smart contract. Once you confirm the smart contract logic is correct, you then move on to a local dev environment using cardano-cli to deploy your smart contract and run transactions against it. Finally, once that is working, then you are ready for testnet testing which can be done either via the cardano-cli or through javascript wallet integration via Cardano serialization library. This has been my experience to date and it will most likely be improved and be streamlined over time.
You can checkout my repo for some code examples and tips and trick I used for the PAB simulator, devnet and testnet testing.
https://github.com/lley154/cardano-lottery