apex - 如何为下面的代码编写包装类的测试类,
问题描述
在 TimelineCase 类中,这里我们在 processTimelineItem() 方法中发送 recordId 和 pageNo 以及 pase 大小,期望它会在该类中使用 sql 获取案例记录。但是这里我们可以覆盖sql case记录,无法获取case记录。
据我所知,我编写了一些测试类,我能够实现 100% 的顶点代码覆盖率,但由于 System.assertEquals(applicantId, testFilteredObjects[0].actor); 我的测试类仍然失败。接下来的这条线,现在尝试理解我的测试类或使用它,请通过理解编写新的测试类。提前谢谢了 !
我写了一些测试类,我能够在课堂上 100% 的代码覆盖率,但我的测试类仍然失败。
TimelineCase class
public class TimelineCase extends TimelineObject implements TimelineObject{
public List<TimelineObject> processTimelineItem(id recordId, Integer pageNo, Integer pageSize){
List<TimelineObject> wrappedCase = new List<TimelineObject>();
List<Case> t = [SELECT Id, Subject, AccountId, CreatedDate, CreatedBy.Name
FROM Case
WHERE Applicant__c = :recordId
LIMIT :pageSize
OFFSET :pageNo];
if(t != null){
for(Integer i = 0, CaseSize = t.size(); i < CaseSize; i++){
wrappedCase.add(new TimelineObject().setActor(t[i].CreatedBy.Name)
.setHeader(t[i].Subject)
.setDate(t[i].CreatedDate.format())
.setIconName('standard:case')
.setIconColour('put the colour in here'));
}
}
return wrappedCase;
}
}
I have tried some test class for your reference,
Test class for TimelineCase
@isTest
public class TimelineCaseTest {
@isTest
public static void itShouldBeAbleToGetApplicantCaseListTest1(){
String applicantId = new TimelineControllerBuilder().save();
Case caseApplicant = new CaseBuilder().withApplicant(applicantId)
.save();
TimelineCase TimelineCase = new TimelineCase();
Test.startTest();
List<TimelineObject> testFilteredObjects = TimelineCase.processTimelineItem(applicantId, 1, 10);
Test.stopTest();
System.debug('Case result' + caseApplicant.CreatedBy.Name + testFilteredObjects[0].actor);
System.assertEquals(1, testFilteredObjects.size());
// applicantId returns case record
System.assertEquals(applicantId, testFilteredObjects[0].actor);
// applicantId returns current created date and time of case record
System.assertEquals((applicantId, , testFilteredObjects[0].itemDate);
System.assertEquals('standard:case', testFilteredObjects[0].iconName);
System.assertEquals('put the colour in here', testFilteredObjects[0].iconColour);
}
}
Please let me know if you need further information
// returning the user name who is creating the case record
System.assertEquals(applicantId, testFilteredObjects[0].actor);
//// returning the created date and time who is creating the case record
System.assertEquals(applicantId, testFilteredObjects[0].itemDate);
}
解决方案
推荐阅读
- javascript - 我想制作一个 chrome 扩展,它将从浏览器获取 url 并将其传递给存在于同一文件夹中的 python 脚本
- javascript - 如何使用 javascript 获取 datalist 的图像 src 或 id?
- json - cl-json decode-json 将 plist 键作为字符串而不是符号
- swift - 如何在 Swift UI 中使用 Firebase 登录?
- python - 如何将层次结构字典转换为识别文本和节点的格式?
- python - 是否可以在一行上打印不断更新的变量?
- c - 如果文件路径存在,open(filepath, O_WRONLY|O_EXCL) 是否返回值?
- c# - 如何在 Nunit 命令行执行中使用排除类别属性
- javascript - firebase 检查文件是否存在
- java - 如何在@PostConstruct 中为 Groovy Spock 测试用例模拟语句