खोज…


दावे के तरीके

static TestMethod void DmlTest() {
    List<Contact> allContacts = [SELECT Id FROM Contact];
    System.assert(allContacts.isEmpty());

    Contact testContact = new Contact(FirstName = 'John', LastName = 'Doe');
    insert testContact;
    allContacts = [SELECT Id FROM Contact];
    System.assertNotEquals(0, allContacts.size(), 'Optional message in case of failure');
    
    delete allContacts;
    allContacts = [SELECT Id FROM Contact];
    System.assertEquals(0, allContacts.size());
}

बेसिक टेस्ट क्लास

यह परीक्षण वर्ग SomeClass की IsBlank(...) विधि का परीक्षण करेगा। नीचे SomeClass का उदाहरण दिया गया है। इस वर्ग में केवल एक ही है, मूल static विधि, लेकिन आप इसे कोड इंस्ट्रूमेंट थ्रेशोल्ड तक पहुँचने तक उपयोग के लिए उत्पादन इंस्टेंस पर लागू करने में असमर्थ होंगे।

public class SomeClass {

    public static Boolean IsBlank(String someData) {
        if (someData == null) {
            return true;
        } else if (someData == '') {
            return true; 
        } else {
            return false;
        }
    }

}

जैसा कि एक देख सकता है, यह विधि केवल एक है if तीन शाखाओं वाला बयान। एक प्रभावी परीक्षण वर्ग लिखने के लिए, हमें प्रत्येक शाखा को कोड के साथ कवर करना होगा, और यह सुनिश्चित करने के लिए System.assertEquals(...) कथनों का उपयोग करना होगा कि यह सुनिश्चित करने के लिए कि IsBlank(...) से उचित डेटा प्राप्त हुआ है।

@isTest 
public class SomeClass_test {

    @isTest 
    public static void SomeClass_IsBlank_test() {

        String testData;

        // SomeClass.IsBlank() returns true for Null values
        System.assertEquals(true, SomeClass.IsBlank(testData)); 

        testData = '';
        
        // SomeClass.IsBlank() returns true for empty strings
        System.assertEquals(true, SomeClass.IsBlank(testData)); 

        testData = 'someData';

        // SomeClass.IsBlank() returns false when testData is neither
        // an empty string nor Null
        System.assertEquals(false, SomeClass.IsBlank(testData)); 

    }

}

TestSetup का उपयोग करना

आप कोड लिखने के लिए @testSetup साथ एनोटेट की गई विधि का उपयोग कर सकते हैं जिसे प्रत्येक परीक्षण चलाने से पहले निष्पादित किया जाएगा:

public class AccountService {
  public static Account fetchAccount() {
    return [ SELECT Id, Name FROM Account LIMIT 1 ];
  }
}
@isTest
public class AccountServiceTest {
  private static final String TEST_ACCOUNT_NAME = 'My Test Account';

  @testSetup
  public static void setUpAccountData() {
    Account a = new Account(Name = TEST_ACCOUNT_NAME);
  }

  @isTest
  public static void testFetchAccount() {
    Account a = AccountService.fetchAccount();
    System.assertNotEquals(null, a, 'Account should not be null');
    System.assertEquals(TEST_ACCOUNT_NAME, a.Name, 'Account name should be correct');
  }
}

स्थिर ब्लॉकों का उपयोग करना

जब आप परीक्षणों को निष्पादित करने से पहले चलाने के लिए एक विधि नामित करने के लिए @testSetup एनोटेशन का उपयोग कर सकते हैं, तो यह विधि आमतौर पर केवल एक बार चलाई जाएगी। यदि आपको प्रत्येक परीक्षण से पहले कोड की आवश्यकता है, तो आप एक static ब्लॉक का उपयोग कर सकते हैं:

@isTest
public class MyTest {
  static {
    // code here will be run before each test is executed
  }
}

जोर देने के तरीके

System.assert का उपयोग यह जांचने के लिए किया जा सकता है कि बूलियन अभिव्यक्ति सही का मूल्यांकन करती है:

System.assert(Service.isActive());
System.assert(!Service.getItems().isEmpty(), 'items should not be empty');

System.assertEquals और System.assertNotEquals का उपयोग दो मूल्यों की समानता की जांच करने के लिए किया जा सकता है। अपेक्षित मान पहले पैरामीटर के रूप में पारित किया जाता है, और परीक्षण के तहत मूल्य दूसरे के रूप में पारित किया जाता है।

System.assertEquals(4, Service.getItems().size());
System.assertNotEquals(null, Service.getItems());

// failure messages are optional:
System.assertEquals(true, Service.doWork(), 'doWork should return true');
System.assertNotEquals(null, Service.doWork(), 'doWork should not be null');


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow