所以这是越来越悲惨。我试图测试一些微软的垃圾会员资格库,他们只是很糟糕。我设法将一个接口放在Membership类的前面,然后遇到了实现ProfileBase的类的问题,并且我设法为它创建了一个接口,所以愚蠢的静态创建方法可能会被模拟,但我怎样才能嘲笑profileBase中的属性这是你使用那个愚蠢的类的唯一原因。认真的MicroSoft在这个时代不能修复他们的代码,所以你可以为它写一个怪异的单元测试。多可怜。这是我到目前为止已经试过从ProfileBase嘲讽属性
mockProfileFactoryService = new Mock<IProfileFactoryService>();
mockProfileFactoryService.Setup(x => x.GetUserProfile(It.IsAny<string>())).Returns(new DummyUserProfile(){FirstName = ""});
这是德伪类是什么样
public class DummyUserProfile: UserProfile
{
public new String FirstName { get; set; }
public new String LastName { get; set; }
}
我想我可以隐藏属性名字和姓氏的这种方式,但测试只是吹起来我可以看到它试图访问实际的UserProfile类中的属性。
有谁知道我该怎么做?认真地说 - 当他们从ProfilBase类继承时,其他人在做什么?
我也试过解压缩和接口使用reshaper,似乎工作,但当我嘲笑它,然后试图说.Return(profileMock.object)它爆炸说它不能转换和IUserProfile到UserProfile?在ARG之前我从未见过!
我的意思是 - 我讨厌改变我的代码,使其可测试,即检查这样的空值或愚蠢的废话,但我会如果我可以,在这种情况下,你不能做任何事情,因为你对此做了什么?
base["FirstName"]