0
おはよう!NS代替if-else条件
[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();
}
実際に次のコード
public override void Run(List<string> argument)
{
connectedCameras = argument;
if(connectedCameras.Count == 0)
{
SetUIOnNoConnectedDevices();
}
else
{
FillCamerasListView();
}
View.Show();
}
をテストし、私の問題はFillCamerasListView方法は、テストで呼び出しされていないということです。私は、私は次のテストを持って、あなたの助けを必要としています。しかし、この場合Runメソッドを呼び出すと予想されていました。だから私は何が問題なのか想像することができないので、私はあなたの助けに感謝します。御時間ありがとうございます!
は 'FillCamerasListView()' '' view.FillCamerasListView(connectedCameras)を呼び出していますか?あなたが得ているアサーションの例外は何ですか? –
よろしいですか?私はプレゼンターに呼び出しSetUIOnNoConnectedDevicesとFillCamerasListViewはview.FillCamerasListViewとview.SetUIOnNoConnectedDevices上の単純なラッパーです。私はこの文字列view.Received()の例外を取得しています。FillCamerasListView(引数);テスト中。 – Crispried
例外エラー: タイプの例外「NSubstitute.Exceptions.ReceivedCallsException」はNSubstitute.dllで発生したが、ユーザーコードで処理されなかった 追加情報:コールマッチングを受け取るために期待: \t FillCamerasListView(一覧) 実際には一致するコールは受信されませんでした。 は1非マッチングコール(「*」文字で示された非マッチングの引数)を受信: \t FillCamerasListView(*リスト *) –
Crispried