J'ai un déclencheur qui envoie un e-mail en utilisant un modèle VF. J'essaie d'écrire un test unitaire pour ce code, mais je continue à rencontrer un problème lorsque j'essaie de créer les données de test.
Voici ma méthode d'essai:Test d'unité de modèle d'e-mail Visualforce
static TestMethod void testQuestionAttachment(){
Id profileId = SYSTEM_ADMIN_PROFILE_ID;
List<User> users = TestUtils.createUsers(profileId, 1);
insert users;
string templateText = '<messaging:emailTemplate subject="{!relatedTo.Name}" recipientType="User" relatedToType="Cutom_Object__c"><messaging:htmlEmailBody ><ul><li>test content</li></ul></messaging:htmlEmailBody></messaging:emailTemplate>';
EmailTemplate template = new EmailTemplate(
developerName = 'TestEmailVFTemplate',
TemplateType= 'visualforce',
FolderId = users[0].Id,
Name = 'TestEmailVFTemplate',
IsActive = true);
template.HtmlValue = templateText;
template.Body = templateText;
System.runAs(users[0]){
insert template;
}
...
Et il échoue avec FIELD_INTEGRITY_EXCEPTION, <messaging:emailTemplate> is required and must be the outermost tag in the markup at line 1 column 1: [Markup]
.
Je ne comprends vraiment pas pourquoi cela ne fonctionne pas. Il doit me manquer quelque chose ...
Je ne peux pas changer le type de modèle à 'Text' Becuase dans mon code, je vous envoie le modèle' un WhatId' (objet personnalisé) et un 'TargetObject' (utilisateur). Et pour les modèles de texte, ceux-ci sont incompatibles, mais fonctionnent dans les modèles VF. – AvailableName
@AvailableName Avez-vous essayé d'abord? –
Oui, c'était ma première tentative. – AvailableName