当前位置: 首页 > 知识库问答 >
问题:

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

谷梁永年
2023-03-14

我已在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;
    }
}

现在我正在尝试为它的测试类编写代码。它在线上给出错误,说对象无法解析为字符串。

测试等级代码为:

@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个答案

扶高歌
2023-03-14

你在这一行的问题

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

您试图将字符串传递给需要Id的字段。

    User user = [SELECT Id FROM User LIMIT 1];
    obj.CreatedById = UserInfo.getUserId();
    obj.OwnerId = user.Id;
    obj.WhatId = opportunity.Id;
 类似资料:
  • 有人能给我解释一下如何为下面这样的apex触发器编写测试类吗? 我是Salesforce的新手。有人帮助我如何为上述触发器编写顶点类(测试类)吗? AccountBrowseExtensionTesttestAccountBrowseSystem。DmlException:插入失败。第0行第一个异常;第一个错误:FIELD\u CUSTOM\u VALIDATION\u EXCEPTION,Cit

  • 我已经为此发疯了。我的IF循环中没有任何东西通过我的测试类触发,我不知道为什么。我在网上阅读了很多,看起来我做的事情是正确的,但它仍然没有解决我的代码覆盖率。这是运行的最后一行:如果(isIn==True){ 之后我无法让任何东西在IF循环中运行,我已经颠倒了逻辑,它仍然无法运行。我觉得当有人指出它时,我会踢自己,但这是我的代码: } 这是我的测试类:

  • 我创建了一个触发器,它调用future类对第三方url进行http调用,这里一切正常,但测试类没有覆盖opportunity字段IsWon //Apex触发器 //具有future方法的触发器的future类 //我被卡住的触发器的测试类:-

  • 下面是我的顶点触发器。我是一名初学者,正在尝试编写其测试类,但不断出现错误“System.DmlException:Insert失败。第0行出现第一个异常;第一个错误:REQUIRED\u FIELD\u MISSING,错误:只有在产品相关列表上为此opportunity选择了价格手册,才能选择产品。:[]”。 在Opportunity上触发TrgrOptyHighestCustmorePric

  • 我在Apex中有一个触发器。如何编写检查触发器是否被调用的单元测试?

  • 你好 我正在Salesforce内部为trigger进行单元测试,我不断遇到一个似乎无法解决的错误,所以我希望有更多经验的人能帮助我回到正轨。我已经在Google上搜索过很多次了,我的代码结构也被弄乱了,但我找不到解决方案。 目的: 我的任务是编写一个触发器,该触发器将处理维护每个开发人员的案例排名所需的逻辑。每个开发人员都被分配了案例,这些案例可能有也可能没有由业务确定的优先级。每个开发人员在任