我正在研究一个C#应用程序,而且我在单元测试方面遇到了一些问题(我对这个问题并不是很有经验)。
假设我有以下课程:
public class Product
{
public int id { get; private set; }
public string productCode { get; set; }
public string description { get; set; }
public Product(int idProduct)
{
const string query = "SELECT * FROM products WHERE product_id = idProduct";
Initialize(query, idProduct);
}
private void Initialize(string query,int idQuery)
{
//Creation of db reader
id = reader["product_id"].ToString();
productCode = reader["product_code_id"].ToString();
description = reader["description_id"].ToString();
}
public void Delete()
{
//Query that delete the product from the Db using id
}
public void Update()
{
//Query that update the product in the database using id,productCode and description
}
}
我认为单元测试这个类没有任何意义,因为我的所有操作都只是查询。
假设我需要在我的类中添加一个对其中的数据进行操作的方法,在这种情况下,我在线研究我需要模拟数据(因为我不应该访问Db)并且可能实现Interface
。
这是对的吗?我是否应该仅对具有某些方法的类进行单元测试,这些方法对其中的数据进行操作而不是在Db中进行操作?
如果我决定实施Interface
IProductRepository来存储我的所有产品(我应该这样做吗?),该怎么办?在这种情况下我应该mock
和单元测试吗?