我需要为这段代码编写单元测试。我正在学习如何编写单元测试。我的理解是,我需要从外部开始,并为if语句工作。我在单元测试中到底想做什么?你将如何处理这项任务?对不起,我是一个完全的初学者。谢谢。
Trigger BuildComponentBI on Build_Component__c(before insert , before update) {
if (Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) {
//Double CompVer = 0;
double q = 0;
for (Build_Component__c C: Trigger.new) {
if (C.Manual_Override__c == False){
List<Effort_Matrix__c> em = Effort_Matrix__c.getall().values();
q = c.Scale__c;
For(Effort_Matrix__c e:em){
if(e.Component_Name__c == c.Type__c){
if(e.Phase__c == 'Build'){
c.Estimated_Build_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'Analysis'){
c.Estimated_Analysis_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'SIT'){
c.Estimated_SIT_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'Deployment'){
c.Estimated_Deployment_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'UAT'){
c.Estimated_UAT_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'Unit Test'){
c.Estimated_Unit_Test_Hours__c = e.OOM__c * q;
}
if(e.phase__c == 'Design'){
c.Estimated_Design_Hours__c = e.OOM__c * q;
}
else{}
}
}
}
}
}
}
答案 0 :(得分:1)
您不直接测试触发器。 您需要做的是创建一个插入和更新触发器对象的单元测试(Build_Component__c)。
示例:
@isTest
private class BuildComponentTest {
@isTest static void testManualOverrideFalseInsert() {
Build_Component__c bc = new Build_Component__c();
bc.Manual_Override__c = false;
insert bc;
}
}
当Manual_Override__c布尔值为false时,您将在此处测试插入方案。继续添加测试以涵盖if语句中的其他条件,直到获得100%的覆盖率。
尝试在专用的Salesforce SE上提问,您可以更快地获得答案。