When a test method calls an @future method that performs DML operations, the changes made by the @future method won't be visible until after the Test.stopTest() is called. This method ensures that all asynchronous processes are completed before the test execution continues. Therefore, Test.startTest() should be before the call to the @future method and Test.stopTest() immediately after. References: Apex Developer Guide - Testing Asynchronous Apex