मैं अपने एनयूनीट परीक्षण मामलों में Moq का उपयोग कर रहा हूं। मदद के लिएमैं इस Moq त्रुटि को कैसे हल करूं? System.Reflection.TargetParameterCountException: पैरामीटर गिनती मिस्चैच
public class ChartFieldDomainService : IChartFieldDomainService
{
private IChartFieldRepository _chartFieldRepository = null;
public ChartFieldDomainService(IChartFieldRepository repository)
{
_chartFieldRepository = repository;
}
public virtual IQueryable<ChartFieldDepartment> RetrieveChartFieldDepartments()
{
return _chartFieldRepository.RetrieveChartFieldDepartments(true); // always refresh, get latest
}
//....
}
धन्यवाद:
IList<ChartFieldDepartment> coaDepartments = new List<ChartFieldDepartment>() {
new ChartFieldDepartment { ChartFieldKey="1000", Description="Corporate Allocation"},
new ChartFieldDepartment { ChartFieldKey="1010", Description="Contribution to Capital"}
};
Mock<IChartFieldRepository> mockChartFieldRepository = new Mock<IChartFieldRepository>();
mockChartFieldRepository.Setup(x => x.RetrieveChartFieldDepartments(It.IsAny<bool>())).Returns(coaDepartments.AsQueryable);
ChartFieldDomainService chartFieldDomainService = new ChartFieldDomainService(mockChartFieldRepository.Object);
// this line fails! I get System.Reflection.TargetParameterCountException : Parameter count mismatch
IQueryable<ChartFieldDepartment> departments = chartFieldDomainService.RetrieveChartFieldDepartments();
यहाँ है मेरी ChartFieldDomainService
:
यहाँ मेरी परीक्षण का मामला लग रहा है क्या की तरह है।
संपादित करें: समाधान
वाक्य रचना में निम्नलिखित परिवर्तन समस्या तय।
मूल पंक्ति:
mockChartFieldRepository.Setup(x => x.RetrieveChartFieldDepartments(It.IsAny<bool>()))
.Returns(coaDepartments.AsQueryable());
अपडेट किया गया पंक्ति:
mockChartFieldRepository.Setup(x => x.RetrieveChartFieldDepartments(It.IsAny<bool>()))
.Returns((bool x) => coaDepartments.AsQueryable());
(जो त्रुटि संदेश से बिल्कुल भी स्पष्ट नहीं है।) मुझे नहीं लगता कि आपको लैम्ब्डा की जरूरत है; बस कोष्ठक जोड़ें। – TrueWill