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