使用Microsoft Fakes Framework,我正在开发一个单元测试来测试插入记录的方法。我有三个类TransportControllerTest
:TransportManager
和DbController
。是TransportControllerTest
单元测试类。它TransportManager
是业务逻辑层的一部分,DbController
具有三种方法(插入、获取和删除)。最后这些方法使用ADO.NET访问我的数据库。
在我的单元测试中,我想测试TransportController
. 此控制器调用dbController
两次:dbController.insert()
和dbController.get()
。最后一次调用通过传递用于在第一次调用中插入的参数来给出最后生成的密钥。所以在 中TransportController
,我可以通过调用来访问生成的 id:
string val = dt.Rows[0]["id"].ToString();
int id = Int32.Parse(val);
我想模拟上面的值,所以这个表达式是真的:
dt.Rows[0]["id"].ToString().Equals("*mocked id*");
我尝试了以下方法:
DataTable dt = new DataTable(dataSetName);
dt.Columns.Add("id");
DataRow dr = dt.NewRow();
dr.ItemArray.SetValue(1, 0);
dt.Rows.Add(dr);
return dt;
但这不起作用。如何使给定的表达式在我的测试中为真?