2016-12-10 2 views
1
내가 MOQ를 사용하고 있는데 "밖으로"매개 변수를 받아들이는 방법을 조롱하고 싶은

을 받아 모의 방법 MOQ를 사용하려면 :방법 매개 변수

protected void GetDataRow(string id, out DataRow dataRow) 

이것은 내가 뭘하려 :

dataMock.Protected().Setup("GetDataRow", ItExpr.IsAny<string>(), ItExpr.IsAny<DataRow>()); 

그러나, 그것은 반환

System.ArgumentException : Member DataManager.GetDataRow does not exist. 

내가 "밖으로"로하지 DataRow를 매개 변수를 변경하면 예상대로 모든 것이 작동합니다.

이 경우 모의를 어떻게 작성해야합니까?

+1

문서 도움말이 표시되지 않습니까? https://github.com/Moq/moq4/wiki/Quickstart – DavidG

+0

Moq 문서에 여기에 추가해야합니다. –

답변

2

IsAny<DataRow>을 out 매개 변수와 함께 사용할 수 없습니다. IsAny<DataRow> 대신 로컬 DataRow 변수를 만들고 모의 변수에 전달할 수 있습니다. 나중에 모의 호출을하면 dataRow가 반환되므로 테스트 기대치를 조정할 수 있습니다.

DataRow dataRow = new DataRow(); 
dataMock.Protected().Setup("GetDataRow", ItExpr.IsAny<string>(), out dataRow); 
+0

고맙습니다. 그러나 이것이 작동하지 않는 것 같습니다. 오류 CS1615 : 인수 3이 'out'키워드와 함께 전달되지 않음 – Bart