为Salesforce / APEX触发器编写测试类

时间:2015-11-08 21:09:54

标签: testing triggers salesforce apex-code apex

我在Salesforce APEX中记下了触发器。它运作正常。

触发代码为:

trigger SDRDemoUpdate_test on Event (before update) {
    Map<ID,Event> records = New Map<ID,Event>([SELECT CreatedBy.Name FROM Event WHERE ID IN: trigger.new]);

    for (Event obj :Trigger.new){
        obj.SDR_Original_Demo__c = records.get(obj.id).CreatedBy.Name;
    }
}

现在我正在尝试为其测试类编写代码。它在线提供错误,说无法将对象解析为String。

测试类代码为:

@isTest
public class originalDemo {
    static testMethod void test_original_demo() {
        Event obj = new Event();
        obj.CreatedBy = 'Tom';
        obj.Owner = 'Jack';
        obj.What = 'Opportunity';

        insert.obj;

        userInfo.getName();
    }
}

期待找到解决方案。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

您在这些方面的问题

    obj.CreatedBy = 'Tom';
    obj.Owner = 'Jack';
    obj.What = 'Opportunity';

您尝试将String传递给需要Id的字段。

    User user = [SELECT Id FROM User LIMIT 1];
    obj.CreatedById = UserInfo.getUserId();
    obj.OwnerId = user.Id;
    obj.WhatId = opportunity.Id;