0
以下是错误:“无法为System.Data.SqlClient.SqlDataReaderSmi生成垫片:type现在对导出或程序集可见(System.Data.4.0.0.0.Fakes 。)Cannote为System.Data.SqlClient.SqlDataReaderSmi生成垫片
这里是我的代码:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="System.Data" Version="4.0.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Remove FullName="System.Data.SqlClient"/>
<!--Added Classes-->
<Add FullName="System.Data.SqlClient.SqlCommand!"/>
<Add FullName="System.Data.SqlClient.SqlConnection!"/>
<Add FullName="System.Data.SqlClient.SqlDataRead"/>
</ShimGeneration>
</Fakes>
在我的单元测试,我嘲笑像这样SqlDataReader中:
var statReqReader = new ShimSqlDataReader()
{
Read =() =>
{
if (dsrIndexCounter < testCaseCount)
{
dsrIndexCounter++;
return true;
}
return false;
},
ItemGetString = (val) =>
{
// [] operator
return dtStatReq.Rows[dsrIndexCounter - 1][val];
}
};
总的来说,我需要在我的单元测试使用假货。当我尝试删除关于假货SqlDataReader中以下行文件
<Add FullName="System.Data.SqlClient.SqlDataRead"/>
我提示以下错误:
“的类型或命名空间名称ShimSqlDataReader“找不到(你缺少using指令或程序集引用?)
我嘲笑SqlDataReader中,需要使用假货。我在做什么错?
为什么?您已经拥有可以使用的接口和抽象基类。 –
什么是“SqlDataReaderSmi”? –
@JonathanAllen我已经更新了这个问题,以便更详细地了解。 – MStrad