salesforce - Apex 单元测试看不到数据

标签 salesforce apex-code

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

我已经将顶点代码编写为

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);

 }
}
} 

当我运行这个测试时,我得到 0 作为 ROW 计数。请引用 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

为什么我得到 0 ROW COUNT ?

最佳答案

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

Starting with Apex code saved using Salesforce API version 24.0 and later, test methods don’t have access by default to pre-existing data in the organization, such as standard objects, custom objects, and custom settings data, and can only access data that they create.

You must create test data for each test. You can disable this restriction by annotating your test class or test method with the IsTest(SeeAllData=true) annotation. For more information, see IsTest(SeeAllData=true) Annotation.

关于salesforce - Apex 单元测试看不到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799983/

相关文章:

SalesForce - 包装按钮覆盖

salesforce - 我安排了每天进行顶点类(class),但什么也没发生。有人可以帮我吗?

testing - 您如何为简单的用户代理查找编写 salesforce 测试类?

python - 作为调用函数的一部分从列表中传递变量

javascript - Salesforce、visualforce/javascript 文档?

excel - 在 VF 页面中导出 Excel - 使用动态图像 URL 时图像未显示

python - 使用 asyncio/aiohttp 未完成响应负载

javascript - 为什么 Visualforce 中的 jquery 不起作用?

c# - 可以在本地连接到 Salesforce 连接的应用程序,但在 Azure 函数中发布时无法连接

salesforce - 使用 apex 在 Salesforce 中创建多选查找