Estimate gas without calling approve function


Is there a way to estimate gas for a contract without calling the approve function? I have a smart contract for transferring tokens when I approve the contract to spend I can successfully estimate gas but If I don't then gas estimate reverts. I'm using the usual estimate gas in web3 as per the snippet below

const gas = await mycontract.methods.tokentransfer(address,amount,tokenaddress).estimateGas({ from: sender });

Any ideas?