所以這是越來越悲慘。我試圖測試一些微軟的垃圾會員資格庫,他們只是很糟糕。我設法將一個接口放在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"]