Mocking - kann nicht instanziiert werden proxy-Klasse Immobilien?
In meinen tests, hier ist mein code:
[SetUp]
public void Initialise()
{
mockOwinManager = new Mock<IOwinManager<ApplicationUser, ApplicationRole>>();
mockSearch = new Mock<ISearch<ApplicationUser>>();
mockMail = new Mock<IRpdbMail>();
mockUserStore = new Mock<IUserStore<ApplicationUser>>();
mockOwinManager.Setup(x => x.UserManager).Returns(() => new AppUserManager(mockUserStore.Object));
sut = new UsersController(mockOwinManager.Object, mockSearch.Object, mockMail.Object);
}
Und dann den test selbst:
[Test]
public void WhenPut_IfUserIsNullReturnInternalServerError()
{
//Arrange
mockOwinManager.Setup(x => x.UserManager.FindByIdAsync(It.IsAny<string>())).Returns(() => null);
//Act
var response = sut.Put(new AppPersonUpdate());
//Assert
Assert.AreEqual(response.Result.StatusCode, HttpStatusCode.InternalServerError);
}
Aber meine arrangieren Linie wirft die folgende Fehlermeldung:
Kann nicht proxy instanziieren der Klasse: Microsoft.AspNet.Identität.UserManager`1[[SWDB.BusinessLayer.Identität.ApplicationUser, SWDB.BusinessLayer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].
Konnte nicht finden einen parameterlosen Konstruktor.
Warum ist das so, da im Setup habe ich meine mockOwinManager die UserManager-Eigenschaft in dem, was ich möchte es zurück bereits?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie ein mock-Objekt der
UserManager
ersten. Dann setup seine virtuelle MethodeFindByIdAsync
(angesichts der Tatsache, dass der Typ der EigenschaftUserManager
ist eine KlasseAppUserManager
und können sagen, diese Klasse implementiertIAppUserManager
).und schließlich