【发布时间】:2009-07-07 08:33:31
【问题描述】:
使用 Active Record 的新内置测试(将“测试”设置为连接字符串)我在执行更新时遇到了问题。
我正在测试的代码从数据库中提取一个现有对象,对其进行一些更改,然后保存它。
public void SaveProduct(string productId) {
var dbProduct = Model.Generated.Product.SingleOrDefault(x => x.ProductID == productId);
dbProduct.Description = "Description";
dbProduct.Price = "Price";
dbProduct.Save();
}
为了测试这一点,我正在创建一个新的产品列表,其中包含一个产品。
_dbProducts = new List<Product>
{
new Product
{
ProductID = "XXX0001"
}
};
然后我设置测试(假)。
Product.Setup(_dbProducts)
调用保存方法
repository.SaveProduct("XXX0001");
问题是我收到以下错误消息...
System.NotImplementedException:方法或操作未实现。 在 SubSonic.Repository.TestRepository`1.Add(T 项,IDataProvider 提供程序) 在 ActiveRecord.cs 中的 Model.Generated.Product.Add(IDataProvider provider):第 708 行 在 ActiveRecord.cs 中的 Model.Generated.Product.Save(IDataProvider provider):第 721 行 在 ActiveRecord.cs 中的 Model.Generated.Product.Save():第 715 行 在 ProductRepository.cs 中的 Subsonic.PDAJobRepository.SaveProduct():第 46 行 在 When_Saving_Product.cs 中的 Tests.ProductRepository.When_Saving_Product.Setup():第 44 行
【问题讨论】:
标签: unit-testing activerecord subsonic subsonic3