The usual way of using testing using a different user is, first you would create the keypair of the user.
```
const newUser = anchor.web3.Keypair.generate();
```

Then you would have to fund this user account so that they can pay the gas fees and sign the transaction. This would go inside a test, something like

```
it("initialize program state", async () => {
    await provider.connection.confirmTransaction(
        await provider.connection.requestAirdrop(
            newUser.publicKey,
            10000000000
        ),
        "confirmed"
    );
);
```

Then, all you would need to do is add `newUser` in the signer's array while making the rpc call.