0
안녕하세요! 실제로NS substitute if-else 조건
public override void Run(List<string> argument)
{
connectedCameras = argument;
if(connectedCameras.Count == 0)
{
SetUIOnNoConnectedDevices();
}
else
{
FillCamerasListView();
}
View.Show();
}
이 그리고 내 문제가 FillCamerasListView 방법은 시험에 호출되지 않는 것입니다 다음 코드를 테스트
[SetUp]
public void SetUp()
{
controller = Substitute.For<IApplicationController>();
view = Substitute.For<ICamerasView>();
presenter = new CamerasPresenter(controller, view);
argument = InitializeDevicesList();
presenter.Run(argument);
}
private List<string> InitializeDevicesList()
{
List<string> devicesList = new List<string>();
Device device = new Device();
devicesList.Add(device.Name);
return devicesList;
}
[Test]
public void RunIfDeviceListIsNotEmpty()
{
view.DidNotReceive().SetUIOnNoConnectedDevices();
view.Received().FillCamerasListView(argument);
view.Received().Show();
}
: 나는 다음 테스트를, 당신의 도움이 필요합니다. 하지만 예상대로이 경우 Run 메서드가 호출되었습니다. 따라서 문제가 무엇인지 상상할 수 없으므로 귀하의 도움에 매우 감사하겠습니다. 시간 내 줘서 고마워!
'FillCamerasListView()'는'view.FillCamerasListView (connectedCameras)'를 호출합니까? 당신이 얻는 주장 예외는 무엇입니까? –
예. 발표자에서 호출하는 SetUIOnNoConnectedDevices 및 FillCamerasListView는 view.FillCamerasListView 및 view.SetUIOnNoConnectedDevices의 단순한 래퍼입니다. 이 문자열 view.Received() 예외가 발생했습니다 .FillCamerasListView (argument); 시험 중. – Crispried
예외 오류 : 유형의 예외 'NSubstitute.Exceptions.ReceivedCallsException가'NSubstitute.dll에서 발생했지만 사용자 코드에서 추가 정보 처리되지 않은 : 전화 매칭받을 예정 : \t FillCamerasListView을 (목록) 실제로 일치하는 전화를받지 못했습니다. \t FillCamerasListView 래퍼 FillCamerasListView에 전달 된 인수를 수정처럼 (* 목록 는 *) –
Crispried