/** * Test class for {ClassUnderTest}. * Tests bulk operations (251+ records), positive/negative paths, * and exception handling. */ @isTest private class {ClassUnderTest}Test { @TestSetup static void setupTestData() { List accounts = TestDataFactory.createAccounts(251, true); } // ─── Positive Tests ─────────────────────────────────────────────────── @isTest static void shouldPerformExpectedBehavior_WhenValidInput() { // Given List accounts = [SELECT Id, Name FROM Account]; // When Test.startTest(); // {ClassUnderTest}.methodUnderTest(params); Test.stopTest(); // Then // Assert.areEqual(expected, actual, 'Descriptive failure message'); } @isTest static void shouldHandleBulkRecords_WhenProcessing251() { // Given List accounts = [SELECT Id FROM Account]; Assert.areEqual(251, accounts.size(), 'Should have 251 test records'); // When Test.startTest(); // {ClassUnderTest}.bulkMethod(accounts); Test.stopTest(); // Then // List results = [SELECT Id, Status__c FROM Account]; // for (Account acc : results) { // Assert.areEqual('Processed', acc.Status__c, 'All records should be processed'); // } } // ─── Negative Tests ─────────────────────────────────────────────────── @isTest static void shouldThrowException_WhenNullInput() { Test.startTest(); try { // {ClassUnderTest}.methodUnderTest(null); Assert.fail('Expected exception for null input'); } catch (MyCustomException e) { Assert.isTrue(e.getMessage().contains('cannot be null'), 'Exception message should mention null input'); } Test.stopTest(); } @isTest static void shouldReturnEmpty_WhenEmptyInput() { Test.startTest(); // List results = {ClassUnderTest}.methodUnderTest(new List()); Test.stopTest(); // Assert.isTrue(results.isEmpty(), 'Should return empty list for empty input'); } // ─── Edge Case Tests ────────────────────────────────────────────────── @isTest static void shouldHandleMixedRecords_WhenSomeQualify() { // Given List accounts = [SELECT Id, Status__c FROM Account]; Integer half = accounts.size() / 2; // for (Integer i = 0; i < half; i++) { // accounts[i].Status__c = 'Qualifying'; // } // update accounts; // When Test.startTest(); // {ClassUnderTest}.conditionalMethod(accounts); Test.stopTest(); // Then // List qualifying = [SELECT Id FROM Account WHERE Processed__c = true]; // Assert.areEqual(half, qualifying.size(), 'Only qualifying records should be processed'); } }