2
我有這些接口起訂量爲單線多個屬性代碼
public interface Interface1 { Interface2 Items {get;} }
public interface Interface2 { Guid? ApplicationTypeId { get; } }
public interface Interface3 { Class1 Item {get;} }
public interface Interface4 { Guid? ApplicationId { get; set; } }
甲類繼承的第一接口
public class Class1 : Interface1 {
public Interface2 Items { get; }
}
它由少數的GUID另一類
public static class ContentTypeIds
{
public static Guid ContentGuid1 => new Guid("{11798e9d-a167-4cfc-8cfa-9a24fd6caf25}");
public static Guid ContentGuid2 => new Guid("{7d22f5bb-37fd-445a-b322-2fa1b108d260}");
}
我需要以單元測試以下屬性
private readonly Interface3 _interface3;
public Ticket Current
{
get
{
//This line is very complicated
Interface4 itemByContentType = _interface3.Item?.Items.GetItemByContentType(ContentTypeIds.ContentGuid2);
if (itemByContentType?.ContentId != null)
return Get(itemByContentType.ContentId.Value);
return null;
}
}
我的測試類放在這裏
[Test]
public class TestClass {
var mock1 = new Mock<Interface1>();
var mock2 = new Mock<Interface2>();
var mock3 = new Mock<Interface3>();
mock1.SetupAllProperties();
mock2.SetupAllProperties();
mock3.SetupAllProperties();
}
爲 'itemByContentType' 的值變爲零。 任何人都可以幫助我簡化測試,因爲測試這個屬性越來越複雜嗎?我正在使用Moq。我會感謝任何幫助。
感謝
由於史蒂芬。簡化我的測試代碼後,我的問題變得更簡單了 –