tests/DotNetCommon.Test/Extensions/GenericExtensions/GettingUninitializedInstanceTests.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DotNetCommon.Test.GenericExtensions
{
    using System;
    using NUnit.Framework;
    using Shouldly;
    using DotNetCommon;
    using DotNetCommon.Extensions;

    [TestFixture]
    public sealed class GettingUninitializedInstanceTests
    {
        [Test]
        public void Run()
        {
            var classA = GenericExtensions.GetUninitializedInstance<ClassA>();
            classA.Age.ShouldBe(0);
            classA.Name.ShouldBeNull();
            classA.Number.ShouldBe(29);

            var classB = GenericExtensions.GetUninitializedInstance<ClassB>();
            classB.Age.ShouldBe(0);
            classB.Name.ShouldBeNull();

            var classBb = GenericExtensions.GetUninitializedInstance<ClassBB>();
            classBb.Age.ShouldBe(0);
            classBb.Name.ShouldBeNull();
            classBb.Method().ShouldBe(0);

            var classC = GenericExtensions.GetUninitializedInstance<ClassC>();
            classC.Age.ShouldBe(0);
            classC.Name.ShouldBeNull();

            Should.Throw<MemberAccessException>(() => GenericExtensions.GetUninitializedInstance<ClassD>())
                .Message.ShouldBe("Cannot create an abstract class.");

            var classE = GenericExtensions.GetUninitializedInstance<ClassE>();
            classE.GetAge().ShouldBe(666);
            classE.GetName().ShouldBe("Happy");

            var structA = GenericExtensions.GetUninitializedInstance<StructA>();
            structA.Name.ShouldBeNull();
            structA.Age.ShouldBe(0);
        }

        private class ClassA
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public int Number => 29;

            private ClassA()
            {
                Name = "Sample";
                Age = 10;
            }

            private void Method() { }
        }

        private sealed class ClassB
后面还有 75 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。