public async Task Test_GetCinemaAddressDict() { // arrange var data = new List <LotteCinemaItem> { new LotteCinemaItem { CinemaID = "8000", DivisionCode = "1", DetailDivisionCode = "0001", }, new LotteCinemaItem { CinemaID = "8001", DivisionCode = "1", DetailDivisionCode = "0001", }, new LotteCinemaItem { CinemaID = "8000", DivisionCode = "2", DetailDivisionCode = "0002", } }; foreach (var cinema in data) { _requesterMock .Setup(x => x.Post <GetCinemaDetailItem>( It.IsAny <string>(), It.Is <string>(y => y.Contains($"divisionCode:'{cinema.DivisionCode}'") && y.Contains($"detailDivisionCode:'{cinema.DetailDivisionCode}'") && y.Contains($"cinemaID:'{cinema.CinemaID}'")), It.IsAny <string>())) .ReturnsAsync(new GetCinemaDetailItem { IsOK = "true", ResultMessage = "SUCCESS", CinemaDetail = new LotteCinemaItem { CinemaID = cinema.CinemaID, DivisionCode = cinema.DivisionCode, DetailDivisionCode = cinema.DetailDivisionCode, Address = $"Cinema {cinema.CinemaID}" } }); } // action var service = new LotteService(_requesterMock.Object); var response = await service.GetCinemaAddressDict(data); // assert _requesterMock.Verify(m => m.Post <GetCinemaDetailItem>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2)); Assert.AreEqual(2, response.Count); Assert.IsTrue(response.ContainsKey("8000")); Assert.AreEqual("Cinema 8000", response["8000"]); Assert.IsTrue(response.ContainsKey("8001")); Assert.AreEqual("Cinema 8001", response["8001"]); }