我有以下代码:
public class FakeOrderRepository:IOrderRepository
{
private static Fixture fixture = new Fixture();
private List<acc_ORDERS> dbmock = new List<acc_ORDERS>()
{
fixture.Build<acc_ORDERS>().With(x => x.OrderNumber,Tests.FAKE_ORDERNUMBER)
.Without(x => x.EntityKey)
.Without(x => x.usr_CUSTOMERSReference)
.Without(x => x.usr_CUSTOMERS)
.Without(x => x.sys_COUNTRY1Reference)
.Without(x => x.sys_COUNTRYReference)
.Without(x => x.sys_STATE1Reference)
.Without(x => x.sys_STATEReference)
.Without(x => x.acc_CUSTOMJEWEL_ORDER_ITEMS)
.Without(x => x.acc_DIAMOND_ORDER_ITEMS)
.Without(x => x.acc_JEWELRY_ORDER_ITEMS)
.Without(x => x.acc_CASHFLOW)
.Without(x => x.sys_STATE)
.Without(x => x.sys_STATE1)
.Without(x => x.sys_COUNTRY)
.Without(x => x.sys_COUNTRY1)
.CreateAnonymous()
};
public int Save(Order orderdto)
{
throw new NotImplementedException();
}
public Order GetOrderByOrderNumber(int orderNumber)
{
try
{
var orderdto = dbmock.Where(x => x.OrderNumber == orderNumber).SingleOrDefault();
orderdto.sys_COUNTRYReference= new EntityReference<sys_COUNTRY>()
{
Value = new sys_COUNTRY()
};
var order = Mapper.Map<acc_ORDERS, Order>(orderdto);
return order;
}
catch (Exception ex)
{
throw new Exception("when asked to get the order with the ordernumber:" + orderNumber + " an error occured\r\n" + ex.Message);
}
}
}
看起来像这一行:
orderdto.sys_COUNTRYReference= new EntityReference<sys_COUNTRY>()
{
Value = new sys_COUNTRY()
};
当执行导致异常时,我试图模拟引用对象,如果我在没有这个的情况下调用代码,一切正常,但我的测试代码需要 sys_COUNTRYReference 对象。
例外:
当此 RelatedEnd 的所有者为空时,不允许请求的操作。使用默认构造函数创建的 RelatedEnd 对象只能在序列化期间用作容器。
请就如何解决此问题或从不同角度进行攻击提出建议。
谢谢你。