示例#1
0
        public DoubanAccessorTest()
        {
            var httpClient = new MockHttpClient();

            _logger = new ServiceCollection()
                      .AddLogging(builder => builder.AddConsole())
                      .BuildServiceProvider()
                      .GetRequiredService <ILoggerFactory>()
                      .CreateLogger("test");

            _accessor = DoubanAccessor.Instance;
            _accessor.init(httpClient, _logger);
        }
        public void TestGetResponseWithNoDelay()
        {
            DoubanAccessor accessor = new DoubanAccessor(_httpClient, _logger, 0);

            var url = "https://www.douban.com/search?q=%E9%BE%99%E7%8C%AB";

            _ = accessor.GetResponseWithDelay(url, CancellationToken.None).Result;
            long timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            _ = accessor.GetResponseWithDelay(url, CancellationToken.None).Result;
            long timestamp_now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            _logger.LogWarning("time diff: {0}", timestamp_now - timestamp);
            Assert.True(timestamp_now - timestamp < 2000);
        }