Je tente de tester une unité qui utilise Automapper ProjectTo et je ne sais pas comment enregistrer les mappages dans MVC Core. J'utilise les tests unitaires intégrés.MVC Core 2.0 Test Unit et Automapper
Ce qui suit est mon test unitaire.
[TestClass]
public class BusinessGenderServiceTest
{
[ClassInitialize]
public static void Init(TestContext context)
{
}
[TestMethod]
public void GetTest()
{
var options = new DbContextOptionsBuilder<GotNextDbContext>()
.UseInMemoryDatabase(databaseName: "GetTest")
.Options;
using (var context = new GotNextDbContext(options))
{
context.GenderLanguage.Add(new GenderLanguage { Id = 1, Name = "Male", Language = 1 });
context.GenderLanguage.Add(new GenderLanguage { Id = 2, Name = "Female", Language = 1 });
context.GenderLanguage.Add(new GenderLanguage { Id = 3, Name = "Hombre", Language = 2 });
context.GenderLanguage.Add(new GenderLanguage { Id = 4, Name = "Hombre", Language = 2 });
context.SaveChanges();
}
using (var context = new GotNextDbContext(options))
{
var service = new GenderService(context);
var result = service.Get(1);
Assert.AreEqual(2, result.Count());
}
}
}
Je reçois l'erreur suivante lorsque je lance le test:
Message: Méthode d'essai GotNext.Test.BusinessGenderServiceTest.GetTest a jeté exception:
System.InvalidOperationException: Mapper non initialisées . Appelez Initialize avec la configuration appropriée. Si vous essayez d'utiliser des instances de mappeur via un conteneur ou autrement, assurez-vous que vous n'avez aucun appel aux méthodes Mapper.Map statiques, et si vous utilisez les méthodes d'extension ProjectTo ou UseAsDataSource, assurez-vous de transmettre le fichier IConfigurationProvider approprié. exemple.
1. Ce n'est pas un test unitaire, il est un test d'intégration, puisque vous n'êtes pas tester la classe seulement, mais aussi les dépendances externes (AutoMapper, DbContext) 2. il suffit d'utiliser automapper profils, où vous inscrivez vos inscriptions et vous les inscrivez dans votre test d'intégration – Tseng
@Tseng concernant # 2) ... COMMENT «inscrivez-vous et inscrivez-vous à votre test d'intégration»? J'ai une classe Profils utilisée dans le code de production ... mais je n'ai aucune idée de comment l'utiliser dans le test d'intégration. Aidez-moi? :) –
nm ... J'ai trouvé ceci: https://github.com/AutoMapper/AutoMapper/wiki/Configuration –