tests/DotNetCommon.Test/AsyncLazyTests.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace DotNetCommon.Test
{
using System;
using System.Threading.Tasks;
using NUnit.Framework;
using Shouldly;
using static System.Threading.Tasks.Task;
[TestFixture]
internal sealed class AsyncLazyTests
{
[Test]
public async Task When_creating_an_instance_with_a_factory()
{
int counter = 0;
int Factory()
{
counter++;
return 42;
}
var lazy = new AsyncLazy<int>(Factory);
var lazyResult = await lazy;
lazy.IsValueCreated.ShouldBeTrue();
lazyResult.ShouldBe(42);
lazy.Value.Result.ShouldBe(42);
counter.ShouldBe(1);
}
[Test]
public async Task When_creating_an_instance_with_a_factory_and_getting_value_multiple_times()
{
var bs = new byte[10];
int counter = 0;
int Factory()
{
counter++;
return 42;
}
var lazy = new AsyncLazy<int>(Factory);
var lazyResultOne = await lazy;
var lazyResultTwo = lazy.Value;
var lazyResultThree = await lazy;
lazyResultOne.ShouldBe(42);
lazyResultTwo.Result.ShouldBe(42);
lazyResultThree.ShouldBe(42);
lazy.Value.Result.ShouldBe(42);
counter.ShouldBe(1);
后面还有 56 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
