public async Task GetItemsAsyncWithItems() { // arrange string testJson = JsonConvert.SerializeObject(_testItems); var mockMessageHandler = new Mock <HttpMessageHandler>(); mockMessageHandler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Returns(Task.FromResult(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(testJson) })); var httpClient = new HttpClient(mockMessageHandler.Object); IEnumerable <AnItem> items = await HttpClientExtensions.GetItemsAsync <AnItem>(httpClient, "https://www.cninnovation.com"); Assert.Collection(_testItems, item1 => Assert.Equal("first", item1.Text), item2 => Assert.Equal("second", item2.Text)); }