Написание тестового класса для триггера Salesforce/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;
    }
}

Теперь я пытаюсь написать код для своего тестового класса. Он дает ошибку в строке, говоря, что объект не может быть проанализирован до строки.

Код тестового класса:

@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();
    }
}

Ждем решения. Любая помощь будет оценена по достоинству.

Спасибо


person user3352615    schedule 08.11.2015    source источник


Ответы (1)


Ваша проблема в этих строках

    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;
person Pavel Slepiankou    schedule 09.11.2015