【发布时间】:2019-08-31 14:46:15
【问题描述】:
模型中存储的数据的常见/最佳做法是什么。我正在为计算编写单元测试,并且我有一个属性,它返回实际用于在数据库中存储数据的其他属性的值。在模型中它是这样定义的
bool IsDebtAndPayCurrencyTheSame;
public decimal leftOverDebtInSystemCurrencyForDate
{
get { return IsDebtAndPayCurrencyTheSame ? debt.allDebt.systemCurrency : Math.Round(debt.leftOverDebt.documentCurrency * Convert.ToDecimal(DebtCurrencyKoefPayoDate), 2); }
}
单元测试看起来像这样
Assert.AreEqual(100, income.detailRow[0].account.leftOverDebtInSystemValueForDate);
那么我应该将leftOverDebtInSystemCurrencyForDate 留在模型中还是将其逻辑复制到单元测试中?
【问题讨论】:
-
我们应该怎么知道?如果该成员显然属于您的模型,那么它肯定应该在那里实现。这里没有什么专门针对测试的,都是关于类设计的。
-
从不建议仅为单元测试创建模型,您可能应该只使用逻辑
标签: c# unit-testing model-view-controller model