다음과 같은 오류가 있습니다. "System.Data.SqlClient.SqlDataReaderSmi에 대해 shim을 생성 할 수 없습니다. 형식을 이제 내보낼 수도 있고 어셈블리 (System.Data.4.0.0.0.Fakes)로 볼 수 있습니다. . 내 단위 테스트에서Cannote가 System.Data.SqlClient.SqlDataReaderSmi에 대해 shim을 생성합니다.
<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];
}
};
를) 다음
내 코드입니다 . 나는 다음과 같은 오류가 주어진<Add FullName="System.Data.SqlClient.SqlDataRead"/>
파일 페이크에서 SqlDataReader 개체에 대한 다음 줄을 제거하려고하면 :
"형식 또는 네임 스페이스 이름하여 'ShimSqlDataReader'을 (를) 찾을 수 없습니다 (당신입니다 using 지시문 또는 어셈블리 참조가?)
내가 SqlDataReader 개체 조롱과 페이크를 사용할 필요가있다. 나는 무엇
왜? 이미 사용할 수있는 인터페이스와 추상 기본 클래스가 모두 있습니다. –
"SqlDataReaderSmi"란 무엇입니까? –
@JonathanAllen 질문을 자세히 업데이트하도록 업데이트했습니다. – MStrad