2
moq를 사용하여 설정을해야한다는 오류가 발생하고 예제를 볼 수 있지만 모든 것이 너무 다릅니다. "적어도 한 번 모의에 예상 호출하지만 수행하지 않았다 : 전화 => called.SetWidgetResponseResponseData ("searchType이 "It.IsAny()) 어떤 설정이 구성되지moq 설정이 구성되지 않았습니다. 오류가 발생했습니다. 설정을 올바르게 올바르게 추가하는 방법은 무엇입니까?
는 오류 AA 적절한 MOQ 설정을 할 걸려 . " 이 테스트의
모든 3
[TestMethod]
public void it_should_call_set_response_response_data_on_the_view_reccount()
{
view.Verify(called => called.SetWidgetResponseResponseData("recCount",It.IsAny<string>()));
}
[TestMethod]
public void it_should_call_set_response_response_data_on_the_view_searchtype()
{
view.Verify(called => called.SetWidgetResponseResponseData("searchType", It.IsAny<string>()));
}
[TestMethod]
public void it_should_call_set_response_response_data_on_the_view_isgeosearch()
{
view.Verify(called => called.SetWidgetResponseResponseData("isGEOSearch", It.IsAny<bool>()));
}
나는 "입술"설치 권리와 MOQ와 조롱 할 필요가 있기 때문에 오류가 있다고 생각을하지?
if (res != null && res.Count > 0)
{
View.SetWidgetResponseResponseData("recCount", res.Count.ToString());
View.SetWidgetResponseResponseData("searchType", provFacSearchCrt.SearchType);
View.SetWidgetResponseResponseData("isGEOSearch", provFacSearchCrt.IsGeoSearch);
}
업데이트
public abstract class ProviderSearchPresenterContext : Specification<Tc.Cbc.Presentation.ProviderSearchPresenter>
{
protected Mock<ICESBaseWidgetView> view = new Mock<ICESBaseWidgetView>();
protected Mock<ILookupServiceManager> lookupService = new Mock<ILookupServiceManager>(MockBehavior.Loose);
protected Mock<ICAPProviderService> capProvider = new Mock<ICAPProviderService>(MockBehavior.Loose);
protected Mock<IProviderFacilityServiceManager> prvFacServiceMgr = new Mock<IProviderFacilityServiceManager>(MockBehavior.Loose);
//protected Mock<ProviderFacilitySearchCriteria> provFacSearchCrt = new Mock<ProviderFacilitySearchCriteria>(MockBehavior.Loose);
protected Mock<ICESTraceManager> traceManager = new Mock<ICESTraceManager>();
protected Mock<ILogger> logger = new Mock<ILogger>();
protected Mock<IResourcesHelper> resources = new Mock<IResourcesHelper>();
protected Mock<IUserContext> userContext = new Mock<IUserContext>();
protected NameValueCollection QueryString = new NameValueCollection();
protected NameValueCollection Form = new NameValueCollection();
protected Dictionary<string, string> MethodArguments = new Dictionary<string, string>();
protected override Tc.CES.Presentation.ProviderSearchPresenter construct()
{
//capProvider.Setup(x => x.GetProvider(It.Is<GetProviderReqMsg>(y => y.GetProvider.ProviderSystemIDs[0].SystemIDName == CESConstants.PROVIDER_ID
// && y.GetProvider.ProviderSystemIDs[0].SystemIDValue == CESConstants.TZCOMMON))).Returns(new GetProviderRespMsg {
var presenter = new Tc.CES.Presentation.ProviderSearchPresenter(view.Object, traceManager.Object, logger.Object, resources.Object,
userContext.Object, lookupService.Object, capProvider.Object, prvFacServiceMgr.Object);
presenter.QueryString = QueryString;
presenter.Form = Form;
presenter.MethodArguments = MethodArguments;
return presenter;
}
protected override void given() { }
protected override void when()
{
QueryString["ProFacSearch"] = "FACILITY";
sut.ShowProviderSearch(null, null);
}
}
사양 클래스는 다음과 같습니다
확인[TestClass]
public abstract class Specification<SUT>
{
protected SUT sut;
[TestInitialize]
public void Initialize()
{
sut = construct();
given();
when();
}
protected abstract SUT construct();
protected abstract void given();
protected abstract void when();
}
"보기"가 모의어 인 경우 모든 테스트는 조롱 된 개체를 호출합니다. Mock 객체는 대개 외부 종속성을 스텁 아웃하는 데 사용됩니다. 정확하게 테스트하려고하는 것은 무엇입니까? – PatrickSteele
모든 코드 (TestInitialize)를 게시하거나 적어도 뷰 객체를 생성 할 수 있습니까? 테스트 메소드에는 모의되지 않은 코드를 호출하는 코드도 포함되어야합니다. 테스트가 실제로이 한 줄입니까? – Gilles