Salesforce Apex单元测试没有看到任何数据

Salesforce Apex单元测试没有看到任何数据,salesforce,apex-code,Salesforce,Apex Code,我已在我的组织中创建了主题为“电子邮件任务”的任务 我已经将apex代码编写为 public class TaskInfoDAOClass { public static List<Task> queryTaskInfo () { integer count = [SELECT count() FROM Task]; System.debug('Row Count :'+ count); List<Task> tasks= [SELECT Task.Id

我已在我的组织中创建了主题为“电子邮件任务”的任务

我已经将apex代码编写为

public class  TaskInfoDAOClass
{
   public static List<Task> queryTaskInfo ()
    {
integer count = [SELECT count() FROM Task];
System.debug('Row Count :'+ count);
 List<Task> tasks= [SELECT Task.Id,Task.AccountId,Task.Status,Task.Account.Name FROM Task where Task.Subject='Email Task'];
  return tasks;     
  }
}
@isTest 
public class TestTaskInfoDAO
{
 public static testMethod void testQueryTaskInfo()
 {
List<Task> tasks = TaskInfoDAOClass.queryTaskInfo();
 System.debug ('this is a debug statement');

for (Task t : tasks)
{
 System.debug ('Status '+ t.Status);
  System.debug ('Account name '+ t.Account.Name);

 }
}
} 
公共类任务信息类
{
公共静态列表queryTaskInfo()
{
整数计数=[从任务中选择计数()];
System.debug('行计数:'+计数);
列出任务=[从任务中选择Task.Id、Task.AccountId、Task.Status、Task.Account.Name,其中Task.Subject='Email Task'];
返回任务;
}
}
我创建了一个测试类来测试apex代码

public class  TaskInfoDAOClass
{
   public static List<Task> queryTaskInfo ()
    {
integer count = [SELECT count() FROM Task];
System.debug('Row Count :'+ count);
 List<Task> tasks= [SELECT Task.Id,Task.AccountId,Task.Status,Task.Account.Name FROM Task where Task.Subject='Email Task'];
  return tasks;     
  }
}
@isTest 
public class TestTaskInfoDAO
{
 public static testMethod void testQueryTaskInfo()
 {
List<Task> tasks = TaskInfoDAOClass.queryTaskInfo();
 System.debug ('this is a debug statement');

for (Task t : tasks)
{
 System.debug ('Status '+ t.Status);
  System.debug ('Account name '+ t.Account.Name);

 }
}
} 
@isTest
公共类TestTaskInfoDAO
{
公共静态测试方法void testQueryTaskInfo()
{
List tasks=TaskInfoDAOClass.queryTaskInfo();
System.debug(“这是一条调试语句”);
for(任务t:任务)
{
System.debug(“状态”+t.Status);
System.debug('Account name'+t.Account.name);
}
}
} 
当我运行这个测试时,我得到0作为行计数。请参阅apex.log文件

24.0 APEX_CODE,FINE;APEX_PROFILING,FINE;DB,INFO;VALIDATION,INFO;WORKFLOW,FINEST
23:48:30.100 (100678000)|EXECUTION_STARTED
23:48:30.100 (100722000)|CODE_UNIT_STARTED|[EXTERNAL]|01p90000000k5Qw|TestTaskInfoDAO.testQueryTaskInfo
23:48:30.101 (101272000)|METHOD_ENTRY|[2]|01p90000000k5Qw|TestTaskInfoDAO.TestTaskInfoDAO()
23:48:30.101 (101414000)|METHOD_EXIT|[2]|TestTaskInfoDAO
23:48:30.101 (101494000)|METHOD_ENTRY|[1]|01p90000000k5Qr|TaskInfoDAOClass.TaskInfoDAOClass()
23:48:30.101 (101513000)|METHOD_EXIT|[1]|TaskInfoDAOClass
23:48:30.101 (101782000)|METHOD_ENTRY|[6]|01p90000000k5Qr|TaskInfoDAOClass.queryTaskInfo()
23:48:30.102 (102176000)|SOQL_EXECUTE_BEGIN|[5]|Aggregations:0|select count() from Task
23:48:30.106 (106893000)|SOQL_EXECUTE_END|[5]|Rows:0
23:48:30.106 (106965000)|SYSTEM_METHOD_ENTRY|[6]|String.valueOf(Object)
23:48:30.107 (107012000)|SYSTEM_METHOD_EXIT|[6]|String.valueOf(Object)
23:48:30.107 (107032000)|SYSTEM_METHOD_ENTRY|[6]|System.debug(ANY)
23:48:30.107 (107040000)|USER_DEBUG|[6]|DEBUG|Row Count :0
23:48:30.107 (107047000)|SYSTEM_METHOD_EXIT|[6]|System.debug(ANY)
23:48:30.107 (107385000)|SOQL_EXECUTE_BEGIN|[9]|Aggregations:0|select Task.Id, Task.AccountId, Task.Status, Task.Account.Name from Task where Task.Subject = 'Email Task'
23:48:30.109 (109847000)|SOQL_EXECUTE_END|[9]|Rows:0
23:48:30.109 (109930000)|METHOD_EXIT|[6]|01p90000000k5Qr|TaskInfoDAOClass.queryTaskInfo()
23:48:30.110 (110074000)|USER_DEBUG|[7]|DEBUG|this is a debug statement
23:48:30.789 (111361000)|CUMULATIVE_LIMIT_USAGE
23:48:30.789|LIMIT_USAGE_FOR_NS|(default)|
  Number of SOQL queries: 2 out of 100
  Number of query rows: 0 out of 50000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 150
  Number of DML rows: 0 out of 10000
  Number of script statements: 7 out of 200000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 10
  Number of Email Invocations: 0 out of 10
  Number of fields describes: 0 out of 100
  Number of record type describes: 0 out of 100
  Number of child relationships describes: 0 out of 100
  Number of picklist describes: 0 out of 100
  Number of future calls: 0 out of 10

23:48:30.789|TOTAL_EMAIL_RECIPIENTS_QUEUED|0
23:48:30.789|STATIC_VARIABLE_LIST|
  double:MAX_VALUE:0
  long:serialVersionUID:0
    int:MAX_EXPONENT:0
    int:MIN_EXPONENT:0
    Boolean:TRUE:0
    long:serialVersionUID:0
    double:POSITIVE_INFINITY:0
    double:MIN_NORMAL:0
    double:MIN_VALUE:0
    Boolean:FALSE:0
    int:SIZE:0
    char[]:DigitOnes:0
    int[]:sizeTable:0
    char[]:DigitTens:0
    double:NaN:0
    int:MAX_VALUE:0
    char[]:digits:0
    long:serialVersionUID:0
    double:NEGATIVE_INFINITY:0
    int:MIN_VALUE:0
    int:SIZE:0

23:48:30.789|CUMULATIVE_LIMIT_USAGE_END

23:48:30.111 (111444000)|CODE_UNIT_FINISHED|TestTaskInfoDAO.testQueryTaskInfo
23:48:30.111 (111452000)|EXECUTION_FINISHED
23:48:30.999|CUMULATIVE_PROFILING_BEGIN
23:48:30.999|CUMULATIVE_PROFILING|SOQL operations|
  Class.TaskInfoDAOClass.queryTaskInfo: line 5, column 1: [SELECT count() FROM Task]: executed 1 time in 5 ms
  Class.TaskInfoDAOClass.queryTaskInfo: line 9, column 1: [SELECT Task.Id,Task.AccountId,Task.Status,Task.Account.Name FROM Task where Task.Subject='Email Task']: executed 1 time in 3 ms

23:48:30.999|CUMULATIVE_PROFILING|No profiling information for SOSL operations
23:48:30.999|CUMULATIVE_PROFILING|No profiling information for DML operations
23:48:30.999|CUMULATIVE_PROFILING|method invocations|
  External entry point: public static testMethod void testQueryTaskInfo(): executed 1 time in 11 ms
  Class.TestTaskInfoDAO.testQueryTaskInfo: line 6, column 1: public static LIST<Task> queryTaskInfo(): executed 1 time in 8 ms
  Class.TestTaskInfoDAO.testQueryTaskInfo: line 9, column 1: global object iterator(): executed 2 times in 1 ms
  Class.TaskInfoDAOClass.queryTaskInfo: line 6, column 1: global public static String valueOf(Object): executed 2 times in 0 ms
  Class.TestTaskInfoDAO.testQueryTaskInfo: line 7, column 1: global public static void debug(ANY): executed 1 time in 0 ms

23:48:30.999|CUMULATIVE_PROFILING_END
24.0 APEX\u码,好;先端轮廓,精细;数据库,信息;验证、信息;最佳工作流程
23:48:30.100(100678000)|开始执行
23:48:30.100(100722000)|代码|单元|启动|[外部]| 01P9000000K5QW | TestTaskInfoDAO.TestQueryTaskKinfo
23:48:30.101(101272000)|方法|[2]| 01P9000000K5QW | TestTaskInfoDAO.TestTaskInfoDAO()
23:48:30.101(101414000)|方法|出口|[2]| TestTaskInfoDAO
23:48:30.101(101494000)|方法|[1]| 01P9000000K5QR | TaskInfoDAOClass.TaskInfoDAOClass()
23:48:30.101(101513000)|方法|出口|[1]|任务信息类
23:48:30.101(101782000)|方法|[6]| 01P9000000K5QR | TaskInfoDAOClass.queryTaskInfo()
23:48:30.102(102176000)| SOQL_EXECUTE|u BEGIN |[5]|聚合:0 |从任务中选择count()
23:48:30.106(106893000)| SOQL_EXECUTE|u END |[5]|行数:0
23:48:30.106(106965000)|系统|方法|[6]|字符串.valueOf(对象)
23:48:30.107(107012000)|系统|方法|退出|[6]|字符串.valueOf(对象)
23:48:30.107(107032000)|系统|方法|[6]|系统调试(任何)
23:48:30.107(107040000)|用户|调试|[6]|调试|行计数:0
23:48:30.107(107047000)|系统|方法|退出|[6]|系统调试(任何)
23:48:30.107(107385000)| SOQL_EXECUTE|u BEGIN |[9]|聚合:0 |从任务中选择Task.Id、Task.AccountId、Task.Status、Task.Account.Name,其中Task.Subject='Email Task'
23:48:30.109(109847000)| SOQL_EXECUTE|u END |[9]|行数:0
23:48:30.109(109930000)|方法|出口|[6]| 01P9000000K5QR |任务信息类.queryTaskInfo()
23:48:30.110(110074000)|用户|调试|[7]|调试|这是一条调试语句
23:48:30.789(111361000)|累计使用量|
23:48:30.789 |限制| n的使用|(默认)|
SOQL查询数:100个查询中的2个
查询行数:50000行中的0行
SOSL查询数:20个查询中的0个
DML语句数:150个中的0个
DML行数:10000行中的0行
脚本语句数:200000中的7个
最大堆大小:6000000中的0
详图索引数量:10个中的0个
电子邮件调用次数:10次中的0次
描述的字段数:100个字段中的0个
记录类型的数量:100个记录中的0个
描述的子关系数:100个中的0个
选取列表的数量:100个中的0个
未来呼叫数:10个呼叫中的0个
23:48:30.789 |电子邮件收件人总数|排队人数| 0
23:48:30.789 |静态|变量|列表|
双精度:最大值:0
长:SerialVersionId:0
int:MAX_指数:0
int:MIN_指数:0
布尔值:真值:0
长:SerialVersionId:0
双精度:正无穷大:0
双精度:最小值\正常值:0
双精度:最小值:0
布尔值:FALSE:0
整数:大小:0
char[]:洋地黄酮:0
int[]:大小表:0
字符[]:数字:0
双人:楠:0
int:MAX_值:0
字符[]:数字:0
长:SerialVersionId:0
双精度:负无穷大:0
int:MIN_值:0
整数:大小:0
23:48:30.789 |累积|限制|使用|结束
23:48:30.111(111444000)|代码|单元|完成| TestTaskInfoDAO.testQueryTaskInfo
23:48:30.111(111452000)|执行完毕|
23:48:30.999 |累积分析|开始
23:48:30.999 |累积|分析| SOQL操作|
Class.TaskInfoDAOClass.queryTaskInfo:第5行第1列:[从任务中选择计数()]:在5毫秒内执行1次
Class.TaskInfoDAOClass.queryTaskInfo:第9行第1列:[从任务中选择Task.Id、Task.AccountId、Task.Status、Task.Account.Name,其中Task.Subject='Email Task']:在3毫秒内执行1次
23:48:30.999 |累积|分析|没有SOSL操作的分析信息
23:48:30.999 |累积|分析|没有DML操作的分析信息
23:48:30.999 |累积|分析|方法调用|
外部入口点:公共静态testMethod void testQueryTaskInfo():在11毫秒内执行1次
Class.TestTaskInfoDAO.testQueryTaskInfo:第6行第1列:公共静态列表queryTaskInfo():在8毫秒内执行1次
Class.TestTaskInfoDAO.testQueryTaskInfo:第9行第1列:全局对象迭代器():在1毫秒内执行2次
Class.TaskInfoDAOClass.queryTaskInfo:第6行第1列:全局公共静态字符串valueOf(Object):在0毫秒内执行2次
Class.TestTaskInfoDAO.testQueryTaskInfo:第7行第1列:全局公共静态无效调试(任意):在0毫秒内执行1次
23:48:30.999 |累计|结束

为什么我得到0行计数?

这是因为从2012年春季开始,数据在测试期间将不在组织中,并且必须根据您的测试方法重新创建,除非您使用IsTest(SeeAllData=true)注释。从Apex手册:

从使用Salesforce API 24.0版和 之后,测试方法默认情况下无法访问预先存在的数据 在组织中,例如标准对象、自定义对象和 自定义设置数据,并且只能访问它们创建的数据

必须为每个测试创建测试数据。您可以禁用此功能 通过使用注释您的测试类或测试方法来限制 IsTest(请参阅AllData=true)注释。有关详细信息,请参阅 IsTest(请参阅AllData=true)注释


您需要在测试方法开始时插入主题为“电子邮件任务”的任务。从最新版本开始,测试方法无法访问系统中已经存在的数据,这将确保测试是c