用于PCL的RestSharp不从ASP.NET Web API返回数据

时间:2013-07-13 14:56:35

标签: rest asp.net-web-api restsharp

我使用此sample tutorial创建一个简单的Web API。

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

 [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。

1 个答案:

答案 0 :(得分:1)

您已触发异步HTTP调用,似乎永远不会等待它完成。尝试等待,或者在Web API被请求命中之前,您的单元测试可能会完成很多:

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

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