AccountDeletion.apxt
trigger AccountDeletion on Account (before delete) {
// Prevent the deletion of accounts if they have related opportunities.
for (Account a : [SELECT Id FROM Account
WHERE Id IN (SELECT AccountId FROM Opportunity) AND
Id IN :Trigger.old])
{
Trigger.oldMap.get(a.Id).addError( 'Cannot delete account with related opportunities.');
}
}
TestAccountDeletion.apxc
@isTest
private class TestAccountDeletion {
@isTest static void TestDeleteAccountWithOneOpportunity() {
// Test data setup
// Create an account with an opportunity, and then try to delete it
Account acct = new Account(Name='Test Account');
insert acct;
Opportunity opp = new Opportunity(Name=acct.Name + ' Opportunity',
StageName='Prospecting',
CloseDate=System.today().addMonths(1),
AccountId=acct.Id);
insert opp;
// Perform test
Test.startTest();
Database.DeleteResult result = Database.delete(acct, false);
Test.stopTest();
// Verify
// In this case the deletion should have been stopped by the trigger,
// so verify that we got back an error.
System.assert(!result.isSuccess());
System.assert(result.getErrors().size() > 0);
System.assertEquals('Cannot delete account with related opportunities.',
result.getErrors()[0].getMessage());
}
}
測試數據是在測試方法內部設置的,隨着您添加更多測試方法,這可能會很耗時。
如果您有許多測試方法,請將創建測試數據放入測試實用程序類中,然後從多個測試方法中調用該實用程序類
Create a unit test for a simple Apex trigger
RestrictContactByName.apxt
trigger RestrictContactByName on Contact (before insert, before update) {
//check contacts prior to insert or update for invalid data
For (Contact c : Trigger.New) {
if(c.LastName == 'INVALIDNAME') { //invalidname is invalid
c.AddError('The Last Name "'+c.LastName+'" is not allowed for DML');
}
}
}
TestRestrictContactByName.apxc
@isTest
private class TestRestrictContactByName {
static testMethod void metodoTest()
{
List<Contact> listContact= new List<Contact>();
Contact c1 = new Contact(FirstName='Francesco', LastName='Riggio' , email='[email protected]');
Contact c2 = new Contact(FirstName='Francesco1', LastName = 'INVALIDNAME',email='[email protected]');
listContact.add(c1);
listContact.add(c2);
Test.startTest();
try
{
insert listContact;
}
catch(Exception ee)
{
}
Test.stopTest();
}
}