0

我使用这个示例教程来创建一个简单的 Web API。

然后我从这里下载了 RestSharp 的 PCL 版本,编译并尝试执行这个测试代码:

 [TestFixture]
    public class UnitTest1
    {
        [Test]
        public void TestMethod1()
        {
            var client = new RestClient("http://localhost:18506/api/");
            var request = new RestRequest("products", Method.GET);
            client.ExecuteAsync<List<Product>>(request, response =>
            {
                foreach (var a in response.Data)
                {
                    Console.WriteLine(a.Name);
                }
            });
        }

        public class Product
        {
            public string Name { get; set; }
        }
    }

没有任何东西被写入控制台,如果我在回调中放置一个断点,它就不会被击中。

有什么建议么?

TIA。

4

1 回答 1

1

您已经触发了一个异步 HTTP 调用,并且似乎从未等待它完成。尝试等待,否则您的单元测试可能会在 Web API 被请求击中之前完成:

client.ExecuteAsync<List<Product>>(request, response =>
{
    ...
}).Result;

但是在单元测试中,您可能不需要通过异步 HTTP 调用来复杂化您的生活。只需使用标准同步调用并断言收到的结果。

于 2013-07-13T15:01:03.670 回答