xunit单元测试共享例子

develop
bicijinlian 6 years ago
parent a7aab33845
commit 0f59bcb97c

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Study.DelegateSeries.Core
{
/// <summary>
/// 显示类型名 委托
/// </summary>
/// <returns>类型名</returns>
public delegate string ShowTypeNameDelegate();
/// <summary>
/// 显示人名 委托
/// </summary>
/// <returns>人名</returns>
public delegate string ShowPersonName();
/// <summary>
/// 计算器:计算委托
/// </summary>
/// <param name="numberA">参数A</param>
/// <param name="numberB">参数B</param>
/// <returns>计算结果</returns>
public delegate decimal CalculatorDelegate(decimal numberA,decimal numberB);
/// <summary>
/// 返回整形无参 委托
/// </summary>
/// <returns>整形数字</returns>
public delegate int IntegerDelegate();
}

@ -4,27 +4,21 @@ using System.Text;
namespace Study.DelegateSeries.Core
{
public delegate int mydelegate();
public class Demo
{
public int MyDemo(int b)
public int Square(int number)
{
return b * b;
return number * number;
}
public int UseDelegate()
{
mydelegate d = delegate () { return 5; };
IntegerDelegate intDelegate = delegate () { return 5; };
var total = MyDemo(d());
var total = Square(intDelegate());
return total;
}
private void aa()
{
}
}
}

@ -1,21 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using Study.DelegateSeries.Core;
namespace Study.DelegateSeries.Test
{
public class DemoTest
{
[Fact]
public void Test1()
{
var _demo = new Demo();
var total = _demo.UseDelegate();
Assert.Equal(25, total);
}
}
}

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
@ -7,9 +7,16 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<Compile Remove="UseXUnitDemo.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Study.DelegateSeries.Test.UseFixture
{
/// <summary>
/// 类级别实例共享 例子类
/// </summary>
public class ClassFixtureDemo : IDisposable
{
public string ShowSelf()
{
return this.GetType().Name;
}
void IDisposable.Dispose()
{
}
}
}

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Study.DelegateSeries.Test.UseFixture
{
/// <summary>
/// xUnit全局共享类 例子
/// </summary>
public class GlobalFixtureDemo : IDisposable
{
public GlobalFixtureDemo()
{
}
public string ShowSelf()
{
return this.GetType().Name ;
}
void IDisposable.Dispose()
{
}
}
}

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using Xunit.Abstractions;
using Study.DelegateSeries.Test.UseFixture;
namespace Study.DelegateSeries.Test.xUnitSetup
{
/// <summary>
/// 设置全局共享类
/// </summary>
[CollectionDefinition("DemoCollection")]
public class GlobalFixtureSetup:ICollectionFixture<GlobalFixtureDemo>
{
//这个类没有代码,而不需要创建。
//其目的是简单地设置测试集共享数据
//只要设置[CollectionDefinition("Demo Collection")]特性
//并实现IClassFixture<T>接口
}
}

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
namespace Study.DelegateSeries.Test.UseFixture
{
public class UseClassFixtureDemo : IDisposable,IClassFixture<ClassFixtureDemo>
{
public ClassFixtureDemo demo;
public UseClassFixtureDemo(ClassFixtureDemo _demo)
{
this.demo = _demo;
}
[Fact]
public void Test()
{
var shlfName = demo.ShowSelf();
Assert.True(true);
}
void IDisposable.Dispose()
{
}
}
}

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
namespace Study.DelegateSeries.Test.UseFixture
{
[Collection("DemoCollection")]
public class UseFullFixtureDemo:IDisposable,IClassFixture<ClassFixtureDemo>
{
GlobalFixtureDemo globalDemo;
ClassFixtureDemo classDemo;
public UseFullFixtureDemo(GlobalFixtureDemo globalFixture, ClassFixtureDemo classFixture)
{
this.globalDemo = globalFixture;
this.classDemo = classFixture;
}
[Fact]
public void UseXUnitTest()
{
Assert.True(true,"已使用xUnit单元测试框架");
}
[Fact]
public void GlobalFixtureTest()
{
Assert.NotNull(this.globalDemo);
string selfName = globalDemo.GetType().Name;
Assert.Equal(selfName, globalDemo.ShowSelf());
}
[Fact]
public void ClassFixtureTest()
{
Assert.NotNull(this.classDemo);
string selfName =classDemo.GetType().Name;
Assert.Equal(selfName, classDemo.ShowSelf());
}
/// <summary>
/// 清理:每测试
/// </summary>
void IDisposable.Dispose()
{
}
}
}

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
namespace Study.DelegateSeries.Test.UseFixture
{
[Collection("DemoCollection")]
public class UseGlobalFixtureDemo
{
GlobalFixtureDemo fixtureDemo;
public UseGlobalFixtureDemo(GlobalFixtureDemo fixture)
{
this.fixtureDemo = fixture;
}
[Fact]
public void Test()
{
Assert.NotNull(this.fixtureDemo);
Assert.True(true);
}
}
}
Loading…
Cancel
Save