亚音速3活动记录测试

时间:2009-07-07 08:33:32

标签: unit-testing activerecord subsonic subsonic3

使用Active Record的新内置测试(将“Test”设置为连接字符串)我遇到了执行更新的问题。

我正在测试的代码将现有对象拉出数据库,对其进行一些更改,然后保存它。

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)

调用save方法

repository.SaveProduct("XXX0001");

问题是我收到以下错误消息......

  

System.NotImplementedException:未实现方法或操作。       在SubSonic.Repository.TestRepository`1.Add(T item,IDataProvider provider)       在ActiveRecord.cs中的Model.Generated.Product.Add(IDataProvider提供程序):第708行       在ActiveRecord.cs中的Model.Generated.Product.Save(IDataProvider提供程序):第721行       在ActiveRecord.cs中的Model.Generated.Product.Save():第715行       在ProductRepository.cs中的Subsonic.PDAJobRepository.SaveProduct():第46行       在Tests.ProductRepository.When_Saving_Product.Setup()在When_Saving_Product.cs:第44行

1 个答案:

答案 0 :(得分:1)

http://github.com/subsonic/SubSonic-3.0/issues

这是一种疏忽。