对于我的项目,我有几个课程。其中两个课程我想以下列方式联系在一起: 它是一个基本的预算申请。
public class Car
{
public int Insurance { get; set; }
public int Gas { get; set; }
}
public class Budget
{
public Car CarProperty { get; set; }
public Budget()
{
CarProperty = new Car();
}
}
这可能是不可能的,但我想实例化Budget类 像这样
Budget budget = new Budget();
然后,我想通过预算中的Car属性分配Car的属性,例如:
budget.CarProperty.Insurance = 500;
我不知道这是否可能,如果不是,或者我正在做一些非常荒谬的事情。 在我的BLL类库的Manager类中,我有一个方法,在分配预算后返回预算.CarProperty.Insurance = 500;
例如:
public class BudgetManager()
{
public void BudgetCreation()
{
Budget budget = new Budget();
budget.CarProperty.Insurance = 500;
return budget;
}
}
使用Nuget
我创建了一个测试方法,它创建了一个新的预算实例
public void TestMethod()
{
Budget budget = new Budget();
BudgetManager manager = new BudgetManager();
budget = manager.BudgetCreation();
Assert.AreEqual(500, budget.CarProperty.Insurance)
}
budget.CarProperty.Insurance刚回来时为0而不是500。 再说一遍,我可能会遗漏一些小细节而对某些事情一无所知,所以请在我的
上轻松一点答案 0 :(得分:0)
总的来说,我同意@Plutonix关于课程的自我维持......但是,如果我理解你,正确地说,你希望能够做到这一点:
budget.CarProperty.Insurance = 500;
无需这样做,首先:
budget.CarProperty = new Car();
在这种情况下,你可以这样做:
public class Car
{
public int Insurance { get; set; }
public int Gas { get; set; }
}
public class Budget
{
public Car Car { get; set; }
public Budget()
{
Car = new Car();
}
}
public class BudgetManager
{
public static Budget CreateBudget(int insurance)
{
Budget budget = new Budget();
budget.Car.Insurance = insurance;
return budget;
}
}
因此,当您运行单元测试时,您将获得所需的行为:
[TestMethod]
public void TestMethod1()
{
int insurance = 500;
Budget b = BudgetManager.CreateBudget(insurance);
Assert.AreEqual(insurance, b.Car.Insurance);
}
单元测试了代码,它按预期工作。