You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.7 KiB
Markdown

˵<EFBFBD><EFBFBD>
============
## <20><><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>߰汾ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Assert.NotThrow() <20><><EFBFBD>ԣ<EFBFBD>ʹ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣" <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>ѡ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+ ʹ<><CAB9> xUnit <20>Դ<EFBFBD> Record <20><>ͨʵ<CDA8><CAB5>
```csharp
//<2F><>ִ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>
Action codeSnippet = () =>
{
//ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ģ<><C4A3><EFBFBD>
//throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
};
var exception = Record.Exception(codeSnippet);
Assert.Null(exception);
```
+ ʹ<><CAB9> FluentAssertions <20><>
```csharp
//<2F><>ִ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>
Action codeSnippet= () =>
{
//ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ģ<><C4A3><EFBFBD>
//throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
};
//<2F><><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
codeSnippet.Should().NotThrow();
```
## <20><><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>й<EFBFBD>һ<EFBFBD>ε<EFBFBD>)
Ŀǰû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> ִ<>й<EFBFBD> ִֻ<D6BB><D6B4>һ<EFBFBD><D2BB> <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>),<2C><><EFBFBD><EFBFBD>һЩ<D2BB><D0A9>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
+ ʹ<><CAB9> Moq <20><EFBFBD><E2A3AC><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",<2C><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD><EFBFBD>ӿڷ<D3BF><DAB7><EFBFBD>
```csharp
public class Person
{
public string Name { get; set; }
public int Id { get; set; }
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
/// </summary>
public virtual void DoSomething()
{
Console.WriteLine("<22><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>");
}
}
using Moq;
namespace WatchStudy.CancellationTokenStudy
{
public class UnitTest1
{
//<2F><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>
[Fact]
public void Test1()
{
//ģ<><EFBFBD><E2B7BD>
var mock = new Mock<Person>();
mock.Setup(foo => foo.DoSomething());
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>һ<EFBFBD><D2BB>
mock.Object.DoSomething();
//<2F><><EFBFBD><EFBFBD> DoSomething <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>
mock.Verify(foo => foo.DoSomething(), Times.Once());
}
}
}
```