实例介绍
FluentAssertions是一个为.NET测试提供流畅断言方式的库,它通过一系列扩展方法,让开发者能够以更自然、直观的方式来指定测试驱动开发(TDD)或行为驱动开发(BDD)风格的单元测试的预期结果。该库支持.NET Standard 2.0及以上版本、.NET Framework 4.7及以上版本以及.NET 6及更高版本。
FluentAssertions的创造者是Dennis Doomen,与Jonas Nyrup共同成为该项目的生产力伙伴。Artur Krajewski、Lukas Grützmacher和David Omid等人也为该项目做出了显著贡献。
要构建这个库,你需要安装Visual Studio 2022 17.8 或JetBrains Rider 2021.3以及Build Tools 2022(包括Universal Windows Platform构建工具)。此外,还需安装.NET Framework 4.7 SDK和.NET 8.0 SDK。可以参考global.json文件了解当前所需的最低版本。
关于Approval.Tests,这是一组特别的测试,使用Verify项目来验证库的公共API是否引入了任何破坏性变更。如果确认变更有效,可以通过运行AcceptApiChanges.ps1或AcceptApiChanges.sh来接受这些变更。或者,可以在Rider内部使用Verify Support插件来比较变更并接受它们。
【实例截图】
【核心代码】
文件清单
└── fluentassertions-5d75286ef24fb38c18ad1fe70f85042b52e73c76
├── AcceptApiChanges.ps1
├── AcceptApiChanges.sh
├── Build
│ ├── Build.cs
│ ├── CompressionExtensions.cs
│ ├── Configuration.cs
│ ├── CustomNpmTasks.cs
│ ├── _build.csproj
│ └── _build.csproj.DotSettings
├── CNAME
├── CONTRIBUTING.md
├── Directory.Build.props
├── FluentAssertions.sln
├── FluentAssertions.sln.DotSettings
├── GitVersion.yml
├── LICENSE
├── NodeVersion
├── README.md
├── Src
│ ├── FluentAssertions
│ │ ├── AggregateExceptionExtractor.cs
│ │ ├── AndConstraint.cs
│ │ ├── AndWhichConstraint.cs
│ │ ├── AssertionExtensions.cs
│ │ ├── AssertionOptions.cs
│ │ ├── AsyncAssertionsExtensions.cs
│ │ ├── AtLeast.cs
│ │ ├── AtMost.cs
│ │ ├── BannedSymbols.txt
│ │ ├── CallerIdentification
│ │ │ ├── AddNonEmptySymbolParsingStrategy.cs
│ │ │ ├── AwaitParsingStrategy.cs
│ │ │ ├── CallerStatementBuilder.cs
│ │ │ ├── IParsingStrategy.cs
│ │ │ ├── MultiLineCommentParsingStrategy.cs
│ │ │ ├── ParsingState.cs
│ │ │ ├── QuotesParsingStrategy.cs
│ │ │ ├── SemicolonParsingStrategy.cs
│ │ │ ├── ShouldCallParsingStrategy.cs
│ │ │ └── SingleLineCommentParsingStrategy.cs
│ │ ├── CallerIdentifier.cs
│ │ ├── Collections
│ │ │ ├── GenericCollectionAssertions.cs
│ │ │ ├── GenericDictionaryAssertions.cs
│ │ │ ├── MaximumMatching
│ │ │ │ ├── Element.cs
│ │ │ │ ├── MaximumMatchingProblem.cs
│ │ │ │ ├── MaximumMatchingSolution.cs
│ │ │ │ ├── MaximumMatchingSolver.cs
│ │ │ │ └── Predicate.cs
│ │ │ ├── SortOrder.cs
│ │ │ ├── StringCollectionAssertions.cs
│ │ │ ├── SubsequentOrderingAssertions.cs
│ │ │ ├── SubsequentOrderingGenericCollectionAssertions.cs
│ │ │ └── WhoseValueConstraint.cs
│ │ ├── Common
│ │ │ ├── AppSettingsConfigurationStore.cs
│ │ │ ├── CSharpAccessModifier.cs
│ │ │ ├── CSharpAccessModifierExtensions.cs
│ │ │ ├── Clock.cs
│ │ │ ├── Configuration.cs
│ │ │ ├── ConfigurationStoreExceptionInterceptor.cs
│ │ │ ├── DateTimeExtensions.cs
│ │ │ ├── DictionaryHelpers.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── ExceptionExtensions.cs
│ │ │ ├── ExpressionExtensions.cs
│ │ │ ├── FullFrameworkReflector.cs
│ │ │ ├── Guard.cs
│ │ │ ├── IClock.cs
│ │ │ ├── IConfigurationStore.cs
│ │ │ ├── IReflector.cs
│ │ │ ├── ITimer.cs
│ │ │ ├── IntegerExtensions.cs
│ │ │ ├── Iterator.cs
│ │ │ ├── MemberPath.cs
│ │ │ ├── MemberPathSegmentEqualityComparer.cs
│ │ │ ├── MethodInfoExtensions.cs
│ │ │ ├── NullConfigurationStore.cs
│ │ │ ├── ObjectExtensions.cs
│ │ │ ├── PropertyInfoExtensions.cs
│ │ │ ├── Services.cs
│ │ │ ├── StartTimer.cs
│ │ │ ├── StopwatchTimer.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── TimeOnlyExtensions.cs
│ │ │ ├── TypeExtensions.cs
│ │ │ ├── TypeMemberReflector.cs
│ │ │ └── ValueFormatterDetectionMode.cs
│ │ ├── CustomAssertionAttribute.cs
│ │ ├── CustomAssertionsAssemblyAttribute.cs
│ │ ├── Disposable.cs
│ │ ├── EnumAssertionsExtensions.cs
│ │ ├── Equivalency
│ │ │ ├── Comparands.cs
│ │ │ ├── ConversionSelector.cs
│ │ │ ├── CyclicReferenceHandling.cs
│ │ │ ├── Digit.cs
│ │ │ ├── EnumEquivalencyHandling.cs
│ │ │ ├── EqualityStrategy.cs
│ │ │ ├── EqualityStrategyProvider.cs
│ │ │ ├── EquivalencyOptions.cs
│ │ │ ├── EquivalencyResult.cs
│ │ │ ├── EquivalencyStep.cs
│ │ │ ├── EquivalencyValidationContext.cs
│ │ │ ├── EquivalencyValidator.cs
│ │ │ ├── Execution
│ │ │ │ ├── CollectionMemberOptionsDecorator.cs
│ │ │ │ ├── CyclicReferenceDetector.cs
│ │ │ │ ├── ObjectInfo.cs
│ │ │ │ └── ObjectReference.cs
│ │ │ ├── Field.cs
│ │ │ ├── GetSubjectId.cs
│ │ │ ├── IAssertionContext.cs
│ │ │ ├── IEquivalencyOptions.cs
│ │ │ ├── IEquivalencyStep.cs
│ │ │ ├── IEquivalencyValidationContext.cs
│ │ │ ├── IEquivalencyValidator.cs
│ │ │ ├── IMember.cs
│ │ │ ├── IMemberInfo.cs
│ │ │ ├── IMemberMatchingRule.cs
│ │ │ ├── IMemberSelectionRule.cs
│ │ │ ├── INode.cs
│ │ │ ├── IObjectInfo.cs
│ │ │ ├── IOrderingRule.cs
│ │ │ ├── Matching
│ │ │ │ ├── MappedMemberMatchingRule.cs
│ │ │ │ ├── MappedPathMatchingRule.cs
│ │ │ │ ├── MustMatchByNameRule.cs
│ │ │ │ └── TryMatchByNameRule.cs
│ │ │ ├── MemberFactory.cs
│ │ │ ├── MemberSelectionContext.cs
│ │ │ ├── MemberVisibility.cs
│ │ │ ├── MultiDimensionalArrayEquivalencyStep.cs
│ │ │ ├── NestedExclusionOptionBuilder.cs
│ │ │ ├── Node.cs
│ │ │ ├── OrderStrictness.cs
│ │ │ ├── Ordering
│ │ │ │ ├── ByteArrayOrderingRule.cs
│ │ │ │ ├── CollectionMemberObjectInfo.cs
│ │ │ │ ├── CollectionMemberOrderingRuleDecorator.cs
│ │ │ │ ├── MatchAllOrderingRule.cs
│ │ │ │ ├── PathBasedOrderingRule.cs
│ │ │ │ └── PredicateBasedOrderingRule.cs
│ │ │ ├── OrderingRuleCollection.cs
│ │ │ ├── Property.cs
│ │ │ ├── Selection
│ │ │ │ ├── AllFieldsSelectionRule.cs
│ │ │ │ ├── AllPropertiesSelectionRule.cs
│ │ │ │ ├── CollectionMemberSelectionRuleDecorator.cs
│ │ │ │ ├── ExcludeMemberByPathSelectionRule.cs
│ │ │ │ ├── ExcludeMemberByPredicateSelectionRule.cs
│ │ │ │ ├── ExcludeNonBrowsableMembersRule.cs
│ │ │ │ ├── IncludeMemberByPathSelectionRule.cs
│ │ │ │ ├── IncludeMemberByPredicateSelectionRule.cs
│ │ │ │ ├── MemberToMemberInfoAdapter.cs
│ │ │ │ └── SelectMemberByPathSelectionRule.cs
│ │ │ ├── SelfReferenceEquivalencyOptions.cs
│ │ │ ├── Steps
│ │ │ │ ├── AssertionContext.cs
│ │ │ │ ├── AssertionResultSet.cs
│ │ │ │ ├── AssertionRuleEquivalencyStep.cs
│ │ │ │ ├── AutoConversionStep.cs
│ │ │ │ ├── DictionaryEquivalencyStep.cs
│ │ │ │ ├── DictionaryInterfaceInfo.cs
│ │ │ │ ├── EnumEqualityStep.cs
│ │ │ │ ├── EnumerableEquivalencyStep.cs
│ │ │ │ ├── EnumerableEquivalencyValidator.cs
│ │ │ │ ├── EnumerableEquivalencyValidatorExtensions.cs
│ │ │ │ ├── EqualityComparerEquivalencyStep.cs
│ │ │ │ ├── EquivalencyValidationContextExtensions.cs
│ │ │ │ ├── GenericDictionaryEquivalencyStep.cs
│ │ │ │ ├── GenericEnumerableEquivalencyStep.cs
│ │ │ │ ├── ReferenceEqualityEquivalencyStep.cs
│ │ │ │ ├── RunAllUserStepsEquivalencyStep.cs
│ │ │ │ ├── SimpleEqualityEquivalencyStep.cs
│ │ │ │ ├── StringEqualityEquivalencyStep.cs
│ │ │ │ ├── StructuralEqualityEquivalencyStep.cs
│ │ │ │ ├── ValueTypeEquivalencyStep.cs
│ │ │ │ ├── XAttributeEquivalencyStep.cs
│ │ │ │ ├── XDocumentEquivalencyStep.cs
│ │ │ │ └── XElementEquivalencyStep.cs
│ │ │ ├── SubjectInfoExtensions.cs
│ │ │ └── Tracing
│ │ │ ├── GetTraceMessage.cs
│ │ │ ├── ITraceWriter.cs
│ │ │ ├── StringBuilderTraceWriter.cs
│ │ │ └── Tracer.cs
│ │ ├── EquivalencyPlan.cs
│ │ ├── EventRaisingExtensions.cs
│ │ ├── Events
│ │ │ ├── EventAssertions.cs
│ │ │ ├── EventHandlerFactory.cs
│ │ │ ├── EventMetadata.cs
│ │ │ ├── EventMonitor.cs
│ │ │ ├── EventRecorder.cs
│ │ │ ├── FilteredEventRecording.cs
│ │ │ ├── IEventRecording.cs
│ │ │ ├── IMonitor.cs
│ │ │ ├── OccurredEvent.cs
│ │ │ ├── RecordedEvent.cs
│ │ │ └── ThreadSafeSequenceGenerator.cs
│ │ ├── Exactly.cs
│ │ ├── ExceptionAssertionsExtensions.cs
│ │ ├── Execution
│ │ │ ├── AssertionFailedException.cs
│ │ │ ├── AssertionScope.cs
│ │ │ ├── CollectingAssertionStrategy.cs
│ │ │ ├── ContextDataItems.cs
│ │ │ ├── Continuation.cs
│ │ │ ├── ContinuationOfGiven.cs
│ │ │ ├── ContinuedAssertionScope.cs
│ │ │ ├── DefaultAssertionStrategy.cs
│ │ │ ├── Execute.cs
│ │ │ ├── FailReason.cs
│ │ │ ├── FallbackTestFramework.cs
│ │ │ ├── GivenSelector.cs
│ │ │ ├── GivenSelectorExtensions.cs
│ │ │ ├── IAssertionScope.cs
│ │ │ ├── IAssertionStrategy.cs
│ │ │ ├── ICloneable2.cs
│ │ │ ├── ITestFramework.cs
│ │ │ ├── LateBoundTestFramework.cs
│ │ │ ├── MSTestFrameworkV2.cs
│ │ │ ├── MSpecFramework.cs
│ │ │ ├── MessageBuilder.cs
│ │ │ ├── NUnitTestFramework.cs
│ │ │ ├── Reason.cs
│ │ │ ├── TestFrameworkProvider.cs
│ │ │ └── XUnit2TestFramework.cs
│ │ ├── Extensibility
│ │ │ └── AssertionEngineInitializerAttribute.cs
│ │ ├── Extensions
│ │ │ ├── FluentDateTimeExtensions.cs
│ │ │ ├── FluentTimeSpanExtensions.cs
│ │ │ └── OccurrenceConstraintExtensions.cs
│ │ ├── FluentActions.cs
│ │ ├── FluentAssertions.csproj
│ │ ├── FluentAssertions.snk
│ │ ├── Formatting
│ │ │ ├── AggregateExceptionValueFormatter.cs
│ │ │ ├── AttributeBasedFormatter.cs
│ │ │ ├── ByteValueFormatter.cs
│ │ │ ├── DateOnlyValueFormatter.cs
│ │ │ ├── DateTimeOffsetValueFormatter.cs
│ │ │ ├── DecimalValueFormatter.cs
│ │ │ ├── DefaultValueFormatter.cs
│ │ │ ├── DictionaryValueFormatter.cs
│ │ │ ├── DoubleValueFormatter.cs
│ │ │ ├── EnumValueFormatter.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── EnumerableValueFormatter.cs
│ │ │ ├── ExceptionValueFormatter.cs
│ │ │ ├── ExpressionValueFormatter.cs
│ │ │ ├── FormatChild.cs
│ │ │ ├── FormattedObjectGraph.cs
│ │ │ ├── Formatter.cs
│ │ │ ├── FormattingContext.cs
│ │ │ ├── FormattingOptions.cs
│ │ │ ├── GuidValueFormatter.cs
│ │ │ ├── IValueFormatter.cs
│ │ │ ├── Int16ValueFormatter.cs
│ │ │ ├── Int32ValueFormatter.cs
│ │ │ ├── Int64ValueFormatter.cs
│ │ │ ├── MaxLinesExceededException.cs
│ │ │ ├── MultidimensionalArrayFormatter.cs
│ │ │ ├── NullValueFormatter.cs
│ │ │ ├── PredicateLambdaExpressionValueFormatter.cs
│ │ │ ├── PropertyInfoFormatter.cs
│ │ │ ├── SByteValueFormatter.cs
│ │ │ ├── SingleValueFormatter.cs
│ │ │ ├── StringValueFormatter.cs
│ │ │ ├── TaskFormatter.cs
│ │ │ ├── TimeOnlyValueFormatter.cs
│ │ │ ├── TimeSpanValueFormatter.cs
│ │ │ ├── UInt16ValueFormatter.cs
│ │ │ ├── UInt32ValueFormatter.cs
│ │ │ ├── UInt64ValueFormatter.cs
│ │ │ ├── ValueFormatterAttribute.cs
│ │ │ ├── XAttributeValueFormatter.cs
│ │ │ ├── XDocumentValueFormatter.cs
│ │ │ ├── XElementValueFormatter.cs
│ │ │ └── XmlReaderValueFormatter.cs
│ │ ├── LessThan.cs
│ │ ├── MoreThan.cs
│ │ ├── Numeric
│ │ │ ├── ByteAssertions.cs
│ │ │ ├── ComparableTypeAssertions.cs
│ │ │ ├── DecimalAssertions.cs
│ │ │ ├── DoubleAssertions.cs
│ │ │ ├── Int16Assertions.cs
│ │ │ ├── Int32Assertions.cs
│ │ │ ├── Int64Assertions.cs
│ │ │ ├── NullableByteAssertions.cs
│ │ │ ├── NullableDecimalAssertions.cs
│ │ │ ├── NullableDoubleAssertions.cs
│ │ │ ├── NullableInt16Assertions.cs
│ │ │ ├── NullableInt32Assertions.cs
│ │ │ ├── NullableInt64Assertions.cs
│ │ │ ├── NullableNumericAssertions.cs
│ │ │ ├── NullableSByteAssertions.cs
│ │ │ ├── NullableSingleAssertions.cs
│ │ │ ├── NullableUInt16Assertions.cs
│ │ │ ├── NullableUInt32Assertions.cs
│ │ │ ├── NullableUInt64Assertions.cs
│ │ │ ├── NumericAssertions.cs
│ │ │ ├── SByteAssertions.cs
│ │ │ ├── SingleAssertions.cs
│ │ │ ├── UInt16Assertions.cs
│ │ │ ├── UInt32Assertions.cs
│ │ │ └── UInt64Assertions.cs
│ │ ├── NumericAssertionsExtensions.cs
│ │ ├── ObjectAssertionsExtensions.cs
│ │ ├── OccurrenceConstraint.cs
│ │ ├── Polyfill
│ │ │ ├── StringBuilderExtensions.cs
│ │ │ └── SystemExtensions.cs
│ │ ├── Primitives
│ │ │ ├── BooleanAssertions.cs
│ │ │ ├── DateOnlyAssertions.cs
│ │ │ ├── DateTimeAssertions.cs
│ │ │ ├── DateTimeOffsetAssertions.cs
│ │ │ ├── DateTimeOffsetRangeAssertions.cs
│ │ │ ├── DateTimeRangeAssertions.cs
│ │ │ ├── EnumAssertions.cs
│ │ │ ├── GuidAssertions.cs
│ │ │ ├── HttpResponseMessageAssertions.cs
│ │ │ ├── IStringComparisonStrategy.cs
│ │ │ ├── NullableBooleanAssertions.cs
│ │ │ ├── NullableDateOnlyAssertions.cs
│ │ │ ├── NullableDateTimeAssertions.cs
│ │ │ ├── NullableDateTimeOffsetAssertions.cs
│ │ │ ├── NullableEnumAssertions.cs
│ │ │ ├── NullableGuidAssertions.cs
│ │ │ ├── NullableSimpleTimeSpanAssertions.cs
│ │ │ ├── NullableTimeOnlyAssertions.cs
│ │ │ ├── ObjectAssertions.cs
│ │ │ ├── ReferenceTypeAssertions.cs
│ │ │ ├── SimpleTimeSpanAssertions.cs
│ │ │ ├── StringAssertions.cs
│ │ │ ├── StringContainsStrategy.cs
│ │ │ ├── StringEndStrategy.cs
│ │ │ ├── StringEqualityStrategy.cs
│ │ │ ├── StringStartStrategy.cs
│ │ │ ├── StringValidator.cs
│ │ │ ├── StringValidatorSupportingNull.cs
│ │ │ ├── StringWildcardMatchingStrategy.cs
│ │ │ ├── TimeOnlyAssertions.cs
│ │ │ ├── TimeSpanCondition.cs
│ │ │ └── TimeSpanPredicate.cs
│ │ ├── Specialized
│ │ │ ├── ActionAssertions.cs
│ │ │ ├── AsyncFunctionAssertions.cs
│ │ │ ├── DelegateAssertions.cs
│ │ │ ├── DelegateAssertionsBase.cs
│ │ │ ├── ExceptionAssertions.cs
│ │ │ ├── ExecutionTime.cs
│ │ │ ├── ExecutionTimeAssertions.cs
│ │ │ ├── FunctionAssertionHelpers.cs
│ │ │ ├── FunctionAssertions.cs
│ │ │ ├── GenericAsyncFunctionAssertions.cs
│ │ │ ├── IExtractExceptions.cs
│ │ │ ├── MemberExecutionTime.cs
│ │ │ ├── NonGenericAsyncFunctionAssertions.cs
│ │ │ ├── TaskCompletionSourceAssertions.cs
│ │ │ └── TaskCompletionSourceAssertionsBase.cs
│ │ ├── Streams
│ │ │ ├── BufferedStreamAssertions.cs
│ │ │ └── StreamAssertions.cs
│ │ ├── TypeEnumerableExtensions.cs
│ │ ├── TypeExtensions.cs
│ │ ├── Types
│ │ │ ├── AllTypes.cs
│ │ │ ├── AssemblyAssertions.cs
│ │ │ ├── ConstructorInfoAssertions.cs
│ │ │ ├── MemberInfoAssertions.cs
│ │ │ ├── MethodBaseAssertions.cs
│ │ │ ├── MethodInfoAssertions.cs
│ │ │ ├── MethodInfoSelector.cs
│ │ │ ├── MethodInfoSelectorAssertions.cs
│ │ │ ├── PropertyInfoAssertions.cs
│ │ │ ├── PropertyInfoSelector.cs
│ │ │ ├── PropertyInfoSelectorAssertions.cs
│ │ │ ├── TypeAssertions.cs
│ │ │ ├── TypeSelector.cs
│ │ │ └── TypeSelectorAssertions.cs
│ │ ├── Xml
│ │ │ ├── Equivalency
│ │ │ │ ├── AttributeData.cs
│ │ │ │ ├── Failure.cs
│ │ │ │ ├── Node.cs
│ │ │ │ ├── XmlIterator.cs
│ │ │ │ └── XmlReaderValidator.cs
│ │ │ ├── XAttributeAssertions.cs
│ │ │ ├── XDocumentAssertions.cs
│ │ │ ├── XElementAssertions.cs
│ │ │ ├── XmlElementAssertions.cs
│ │ │ ├── XmlNodeAssertions.cs
│ │ │ └── XmlNodeFormatter.cs
│ │ └── XmlAssertionExtensions.cs
│ ├── FluentAssertions.png
│ └── FluentAssertions.snk
├── Tests
│ ├── Approval.Tests
│ │ ├── ApiApproval.cs
│ │ ├── Approval.Tests.csproj
│ │ └── ApprovedApi
│ │ └── FluentAssertions
│ │ ├── net47.verified.txt
│ │ ├── net6.0.verified.txt
│ │ ├── netstandard2.0.verified.txt
│ │ └── netstandard2.1.verified.txt
│ ├── AssemblyA
│ │ ├── AssemblyA.csproj
│ │ └── ClassA.cs
│ ├── AssemblyB
│ │ ├── AssemblyB.csproj
│ │ ├── ClassB.cs
│ │ └── ClassC.cs
│ ├── Benchmarks
│ │ ├── BeEquivalentTo.cs
│ │ ├── BeEquivalentToWithDeeplyNestedStructures.cs
│ │ ├── Benchmarks.csproj
│ │ ├── CheckIfMemberIsBrowsable.cs
│ │ ├── CollectionEqual.cs
│ │ ├── HasValueSemanticsBenchmarks.cs
│ │ ├── Issue1657.cs
│ │ ├── LargeObjectGraph.cs
│ │ ├── NestedClass.cs
│ │ ├── Program.cs
│ │ ├── TypeMemberReflectorBenchmarks.cs
│ │ └── UsersOfGetClosedGenericInterfaces.cs
│ ├── Default.testsettings
│ ├── ExampleExtensions
│ │ ├── AssemblyInfo.cs
│ │ ├── ExampleExtensions.csproj
│ │ └── StringAssertionExtensions.cs
│ ├── FSharp.Specs
│ │ ├── FSharp.Specs.fsproj
│ │ └── FSharpSpecs.fs
│ ├── FluentAssertions.Equivalency.Specs
│ │ ├── AssertionRuleSpecs.cs
│ │ ├── BasicSpecs.cs
│ │ ├── CollectionSpecs.cs
│ │ ├── CyclicReferencesSpecs.cs
│ │ ├── DateTimePropertiesSpecs.cs
│ │ ├── DictionarySpecs.cs
│ │ ├── EnumSpecs.cs
│ │ ├── ExtensibilitySpecs.cs
│ │ ├── FluentAssertions.Equivalency.Specs.csproj
│ │ ├── IsExternalInit.cs
│ │ ├── MemberConversionSpecs.cs
│ │ ├── MemberLessObjectsSpecs.cs
│ │ ├── MemberMatchingSpecs.cs
│ │ ├── NestedPropertiesSpecs.cs
│ │ ├── NonEquivalencySpecs.cs
│ │ ├── ObjectReferenceSpecs.cs
│ │ ├── RecordSpecs.cs
│ │ ├── SelectionRulesSpecs.Accessibility.cs
│ │ ├── SelectionRulesSpecs.Basic.cs
│ │ ├── SelectionRulesSpecs.Browsability.cs
│ │ ├── SelectionRulesSpecs.Covariance.cs
│ │ ├── SelectionRulesSpecs.Excluding.cs
│ │ ├── SelectionRulesSpecs.Including.cs
│ │ ├── SelectionRulesSpecs.Interfaces.cs
│ │ ├── SelectionRulesSpecs.MemberHiding.cs
│ │ ├── SelectionRulesSpecs.cs
│ │ ├── TestTypes.cs
│ │ ├── TupleSpecs.cs
│ │ └── XmlSpecs.cs
│ ├── FluentAssertions.Extensibility.Specs
│ │ ├── AssertionEngineInitializer.cs
│ │ ├── ExtensionAssemblyAttributeSpecs.cs
│ │ ├── FluentAssertions.Extensibility.Specs.csproj
│ │ └── Usings.cs
│ ├── FluentAssertions.Specs
│ │ ├── AndWhichConstraintSpecs.cs
│ │ ├── AssertionExtensions.cs
│ │ ├── AssertionExtensionsSpecs.cs
│ │ ├── AssertionFailureSpecs.cs
│ │ ├── AssertionOptionsSpecs.cs
│ │ ├── Collections
│ │ │ ├── CollectionAssertionSpecs.AllBeAssignableTo.cs
│ │ │ ├── CollectionAssertionSpecs.AllBeEquivalentTo.cs
│ │ │ ├── CollectionAssertionSpecs.AllBeOfType.cs
│ │ │ ├── CollectionAssertionSpecs.AllSatisfy.cs
│ │ │ ├── CollectionAssertionSpecs.BeEmpty.cs
│ │ │ ├── CollectionAssertionSpecs.BeEquivalentTo.cs
│ │ │ ├── CollectionAssertionSpecs.BeInAscendingOrder.cs
│ │ │ ├── CollectionAssertionSpecs.BeInDescendingOrder.cs
│ │ │ ├── CollectionAssertionSpecs.BeNull.cs
│ │ │ ├── CollectionAssertionSpecs.BeNullOrEmpty.cs
│ │ │ ├── CollectionAssertionSpecs.BeSubsetOf.cs
│ │ │ ├── CollectionAssertionSpecs.Contain.cs
│ │ │ ├── CollectionAssertionSpecs.ContainEquivalentOf.cs
│ │ │ ├── CollectionAssertionSpecs.ContainInConsecutiveOrder.cs
│ │ │ ├── CollectionAssertionSpecs.ContainInOrder.cs
│ │ │ ├── CollectionAssertionSpecs.ContainItemsAssignableTo.cs
│ │ │ ├── CollectionAssertionSpecs.ContainSingle.cs
│ │ │ ├── CollectionAssertionSpecs.EndWith.cs
│ │ │ ├── CollectionAssertionSpecs.Equal.cs
│ │ │ ├── CollectionAssertionSpecs.HaveCount.cs
│ │ │ ├── CollectionAssertionSpecs.HaveCountGreaterThan.cs
│ │ │ ├── CollectionAssertionSpecs.HaveCountGreaterThanOrEqualTo.cs
│ │ │ ├── CollectionAssertionSpecs.HaveCountLessThan.cs
│ │ │ ├── CollectionAssertionSpecs.HaveCountLessThanOrEqualTo.cs
│ │ │ ├── CollectionAssertionSpecs.HaveElementAt.cs
│ │ │ ├── CollectionAssertionSpecs.HaveElementPreceding.cs
│ │ │ ├── CollectionAssertionSpecs.HaveElementSucceeding.cs
│ │ │ ├── CollectionAssertionSpecs.HaveSameCount.cs
│ │ │ ├── CollectionAssertionSpecs.IntersectWith.cs
│ │ │ ├── CollectionAssertionSpecs.NotContainItemsAssignableTo.cs
│ │ │ ├── CollectionAssertionSpecs.NotContainNulls.cs
│ │ │ ├── CollectionAssertionSpecs.OnlyContain.cs
│ │ │ ├── CollectionAssertionSpecs.OnlyHaveUniqueItems.cs
│ │ │ ├── CollectionAssertionSpecs.Satisfy.cs
│ │ │ ├── CollectionAssertionSpecs.SatisfyRespectively.cs
│ │ │ ├── CollectionAssertionSpecs.StartWith.cs
│ │ │ ├── CollectionAssertionSpecs.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.AllSatisfy.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.BeEmpty.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.BeEquivalentTo.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.BeNull.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.BeSubsetOf.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.Contain.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.ContainInOrder.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.ContainMatch.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.Equal.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.HaveCount.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.HaveElementAt.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.HaveSameCount.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.IntersectWith.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.NotContainNulls.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.OnlyHaveUniqueItems.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.SatisfyRespectively.cs
│ │ │ ├── GenericCollectionAssertionOfStringSpecs.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.BeEmpty.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.BeNull.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.Contain.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.ContainKey.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.ContainKeys.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.ContainValue.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.ContainValues.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.Equal.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveCount.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveCountGreaterThan.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveCountGreaterThanOrEqualTo.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveCountLessThan.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveCountLessThanOrEqualTo.cs
│ │ │ ├── GenericDictionaryAssertionSpecs.HaveSameCount.cs
│ │ │ └── GenericDictionaryAssertionSpecs.cs
│ │ ├── Common
│ │ │ ├── ConfigurationSpecs.cs
│ │ │ ├── MemberInfoExtensions.cs
│ │ │ └── TimeSpanExtensions.cs
│ │ ├── ConfigurationSpecs.cs
│ │ ├── CultureAwareTesting
│ │ │ ├── CulturedFactAttribute.cs
│ │ │ ├── CulturedFactAttributeDiscoverer.cs
│ │ │ ├── CulturedTheoryAttribute.cs
│ │ │ ├── CulturedTheoryAttributeDiscoverer.cs
│ │ │ ├── CulturedXunitTestCase.cs
│ │ │ ├── CulturedXunitTheoryTestCase.cs
│ │ │ ├── CulturedXunitTheoryTestCaseRunner.cs
│ │ │ └── DictionaryExtensions.cs
│ │ ├── Events
│ │ │ └── EventAssertionSpecs.cs
│ │ ├── Exceptions
│ │ │ ├── AsyncFunctionExceptionAssertionSpecs.cs
│ │ │ ├── ExceptionAssertionSpecs.cs
│ │ │ ├── FunctionExceptionAssertionSpecs.cs
│ │ │ ├── InnerExceptionSpecs.cs
│ │ │ ├── InvokingActionSpecs.cs
│ │ │ ├── InvokingFunctionSpecs.cs
│ │ │ ├── MiscellaneousExceptionSpecs.cs
│ │ │ ├── NotThrowSpecs.cs
│ │ │ ├── OuterExceptionSpecs.cs
│ │ │ └── ThrowAssertionsSpecs.cs
│ │ ├── Execution
│ │ │ ├── AssertionScope.ChainingApiSpecs.cs
│ │ │ ├── AssertionScope.ContextDataSpecs.cs
│ │ │ ├── AssertionScope.MessageFormatingSpecs.cs
│ │ │ ├── AssertionScopeSpecs.cs
│ │ │ ├── CallerIdentifierSpecs.cs
│ │ │ ├── FallbackTestFrameworkTests.cs
│ │ │ ├── GivenSelectorSpecs.cs
│ │ │ ├── IgnoringFailuresAssertionStrategy.cs
│ │ │ └── TestFrameworkProviderTests.cs
│ │ ├── ExtensibilitySpecs.cs
│ │ ├── Extensions
│ │ │ ├── FluentActionsSpecs.cs
│ │ │ ├── FluentDateTimeSpecs.cs
│ │ │ ├── ObjectCastingSpecs.cs
│ │ │ ├── ObjectExtensionsSpecs.cs
│ │ │ └── TimeSpanConversionExtensionSpecs.cs
│ │ ├── FakeClock.cs
│ │ ├── FindAssembly.cs
│ │ ├── FluentAssertions.Specs.csproj
│ │ ├── Formatting
│ │ │ ├── DateTimeOffsetValueFormatterSpecs.cs
│ │ │ ├── EnumerableExtensionsSpecs.cs
│ │ │ ├── FormatterSpecs.cs
│ │ │ ├── MultidimensionalArrayFormatterSpecs.cs
│ │ │ ├── PredicateLambdaExpressionValueFormatterSpecs.cs
│ │ │ └── TimeSpanFormatterSpecs.cs
│ │ ├── IsExternalInit.cs
│ │ ├── Numeric
│ │ │ ├── ComparableSpecs.cs
│ │ │ ├── NullableNumericAssertionSpecs.Be.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeApproximately.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeGreaterThan.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeGreaterThanOrEqualTo.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeInRange.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeLessThan.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeLessThanOrEqualTo.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeNegative.cs
│ │ │ ├── NullableNumericAssertionSpecs.BeNull.cs
│ │ │ ├── NullableNumericAssertionSpecs.BePositive.cs
│ │ │ ├── NullableNumericAssertionSpecs.HaveValue.cs
│ │ │ ├── NullableNumericAssertionSpecs.Match.cs
│ │ │ ├── NullableNumericAssertionSpecs.cs
│ │ │ ├── NumericAssertionSpecs.Be.cs
│ │ │ ├── NumericAssertionSpecs.BeApproximately.cs
│ │ │ ├── NumericAssertionSpecs.BeCloseTo.cs
│ │ │ ├── NumericAssertionSpecs.BeGreaterThan.cs
│ │ │ ├── NumericAssertionSpecs.BeGreaterThanOrEqualTo.cs
│ │ │ ├── NumericAssertionSpecs.BeInRange.cs
│ │ │ ├── NumericAssertionSpecs.BeLessThan.cs
│ │ │ ├── NumericAssertionSpecs.BeLessThanOrEqualTo.cs
│ │ │ ├── NumericAssertionSpecs.BeNegative.cs
│ │ │ ├── NumericAssertionSpecs.BeOneOf.cs
│ │ │ ├── NumericAssertionSpecs.BePositive.cs
│ │ │ ├── NumericAssertionSpecs.Match.cs
│ │ │ ├── NumericAssertionSpecs.cs
│ │ │ └── NumericDifferenceAssertionsSpecs.cs
│ │ ├── OccurrenceConstraintSpecs.cs
│ │ ├── Primitives
│ │ │ ├── BooleanAssertionSpecs.cs
│ │ │ ├── DateOnlyAssertionSpecs.Be.cs
│ │ │ ├── DateOnlyAssertionSpecs.BeAfter.cs
│ │ │ ├── DateOnlyAssertionSpecs.BeBefore.cs
│ │ │ ├── DateOnlyAssertionSpecs.BeOneOf.cs
│ │ │ ├── DateOnlyAssertionSpecs.HaveDay.cs
│ │ │ ├── DateOnlyAssertionSpecs.HaveMonth.cs
│ │ │ ├── DateOnlyAssertionSpecs.HaveYear.cs
│ │ │ ├── DateOnlyAssertionSpecs.cs
│ │ │ ├── DateTimeAssertionSpecs.Be.cs
│ │ │ ├── DateTimeAssertionSpecs.BeAfter.cs
│ │ │ ├── DateTimeAssertionSpecs.BeAtLeast.cs
│ │ │ ├── DateTimeAssertionSpecs.BeBefore.cs
│ │ │ ├── DateTimeAssertionSpecs.BeCloseTo.cs
│ │ │ ├── DateTimeAssertionSpecs.BeExactly.cs
│ │ │ ├── DateTimeAssertionSpecs.BeIn.cs
│ │ │ ├── DateTimeAssertionSpecs.BeLessThan.cs
│ │ │ ├── DateTimeAssertionSpecs.BeMoreThan.cs
│ │ │ ├── DateTimeAssertionSpecs.BeNull.cs
│ │ │ ├── DateTimeAssertionSpecs.BeOnOrAfter.cs
│ │ │ ├── DateTimeAssertionSpecs.BeOnOrBefore.cs
│ │ │ ├── DateTimeAssertionSpecs.BeOneOf.cs
│ │ │ ├── DateTimeAssertionSpecs.BeSameDateAs.cs
│ │ │ ├── DateTimeAssertionSpecs.BeWithin.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveDay.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveHour.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveMinute.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveMonth.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveSecond.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveValue.cs
│ │ │ ├── DateTimeAssertionSpecs.HaveYear.cs
│ │ │ ├── DateTimeAssertionSpecs.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.Be.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeAfter.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeAtLeast.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeBefore.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeCloseTo.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeExactly.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeLessThan.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeMoreThan.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeNull.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeOnOrAfter.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeOnOrBefore.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeOneOf.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeSameDateAs.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.BeWithin.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveDay.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveHour.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveMinute.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveMonth.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveOffset.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveSecond.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveValue.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.HaveYear.cs
│ │ │ ├── DateTimeOffsetAssertionSpecs.cs
│ │ │ ├── EnumAssertionSpecs.cs
│ │ │ ├── GuidAssertionSpecs.cs
│ │ │ ├── HttpResponseMessageAssertionSpecs.cs
│ │ │ ├── NullableBooleanAssertionSpecs.cs
│ │ │ ├── NullableGuidAssertionSpecs.cs
│ │ │ ├── NullableSimpleTimeSpanAssertionSpecs.cs
│ │ │ ├── ObjectAssertionSpecs.Be.cs
│ │ │ ├── ObjectAssertionSpecs.BeAssignableTo.cs
│ │ │ ├── ObjectAssertionSpecs.BeDataContractSerializable.cs
│ │ │ ├── ObjectAssertionSpecs.BeEquivalentTo.cs
│ │ │ ├── ObjectAssertionSpecs.BeNull.cs
│ │ │ ├── ObjectAssertionSpecs.BeOfType.cs
│ │ │ ├── ObjectAssertionSpecs.BeOneOf.cs
│ │ │ ├── ObjectAssertionSpecs.BeXmlSerializable.cs
│ │ │ ├── ObjectAssertionSpecs.cs
│ │ │ ├── ReferenceTypeAssertionsSpecs.cs
│ │ │ ├── SimpleTimeSpanAssertionSpecs.cs
│ │ │ ├── StringAssertionSpecs.Be.cs
│ │ │ ├── StringAssertionSpecs.BeEmpty.cs
│ │ │ ├── StringAssertionSpecs.BeEquivalentTo.cs
│ │ │ ├── StringAssertionSpecs.BeLowerCased.cs
│ │ │ ├── StringAssertionSpecs.BeNullOrEmpty.cs
│ │ │ ├── StringAssertionSpecs.BeNullOrWhiteSpace.cs
│ │ │ ├── StringAssertionSpecs.BeOneOf.cs
│ │ │ ├── StringAssertionSpecs.BeUpperCased.cs
│ │ │ ├── StringAssertionSpecs.Contain.cs
│ │ │ ├── StringAssertionSpecs.ContainAll.cs
│ │ │ ├── StringAssertionSpecs.ContainAny.cs
│ │ │ ├── StringAssertionSpecs.ContainEquivalentOf.cs
│ │ │ ├── StringAssertionSpecs.EndWith.cs
│ │ │ ├── StringAssertionSpecs.EndWithEquivalentOf.cs
│ │ │ ├── StringAssertionSpecs.HaveLength.cs
│ │ │ ├── StringAssertionSpecs.Match.cs
│ │ │ ├── StringAssertionSpecs.MatchEquivalentOf.cs
│ │ │ ├── StringAssertionSpecs.MatchRegex.cs
│ │ │ ├── StringAssertionSpecs.StartWith.cs
│ │ │ ├── StringAssertionSpecs.StartWithEquivalentOf.cs
│ │ │ ├── StringAssertionSpecs.cs
│ │ │ ├── StringComparisonSpecs.cs
│ │ │ ├── TimeOnlyAssertionSpecs.Be.cs
│ │ │ ├── TimeOnlyAssertionSpecs.BeAfter.cs
│ │ │ ├── TimeOnlyAssertionSpecs.BeBefore.cs
│ │ │ ├── TimeOnlyAssertionSpecs.BeCloseTo.cs
│ │ │ ├── TimeOnlyAssertionSpecs.BeOneOf.cs
│ │ │ ├── TimeOnlyAssertionSpecs.HaveHours.cs
│ │ │ ├── TimeOnlyAssertionSpecs.HaveMilliseconds.cs
│ │ │ ├── TimeOnlyAssertionSpecs.HaveMinutes.cs
│ │ │ ├── TimeOnlyAssertionSpecs.HaveSeconds.cs
│ │ │ └── TimeOnlyAssertionSpecs.cs
│ │ ├── Specialized
│ │ │ ├── ActionAssertionSpecs.cs
│ │ │ ├── AggregateExceptionAssertionSpecs.cs
│ │ │ ├── AssemblyAssertionSpecs.cs
│ │ │ ├── DelegateAssertionSpecs.cs
│ │ │ ├── ExecutionTimeAssertionsSpecs.cs
│ │ │ ├── TaskAssertionSpecs.cs
│ │ │ ├── TaskCompletionSourceAssertionSpecs.cs
│ │ │ └── TaskOfTAssertionSpecs.cs
│ │ ├── Streams
│ │ │ ├── BufferedStreamAssertionSpecs.cs
│ │ │ └── StreamAssertionSpecs.cs
│ │ ├── TestTimer.cs
│ │ ├── TypeEnumerableExtensionsSpecs.cs
│ │ ├── Types
│ │ │ ├── MethodBaseAssertionSpecs.cs
│ │ │ ├── MethodInfoAssertionSpecs.cs
│ │ │ ├── MethodInfoSelectorAssertionSpecs.cs
│ │ │ ├── MethodInfoSelectorSpecs.cs
│ │ │ ├── PropertyInfoAssertionSpecs.cs
│ │ │ ├── PropertyInfoSelectorAssertionSpecs.cs
│ │ │ ├── PropertyInfoSelectorSpecs.cs
│ │ │ ├── TypeAssertionSpecs.Be.cs
│ │ │ ├── TypeAssertionSpecs.BeAbstract.cs
│ │ │ ├── TypeAssertionSpecs.BeAssignableTo.cs
│ │ │ ├── TypeAssertionSpecs.BeDecoratedWith.cs
│ │ │ ├── TypeAssertionSpecs.BeDecoratedWithOrInherit.cs
│ │ │ ├── TypeAssertionSpecs.BeDerivedFrom.cs
│ │ │ ├── TypeAssertionSpecs.BeSealed.cs
│ │ │ ├── TypeAssertionSpecs.BeStatic.cs
│ │ │ ├── TypeAssertionSpecs.HaveAccessModifier.cs
│ │ │ ├── TypeAssertionSpecs.HaveConstructor.cs
│ │ │ ├── TypeAssertionSpecs.HaveDefaultConstructor.cs
│ │ │ ├── TypeAssertionSpecs.HaveExplicitConversionOperator.cs
│ │ │ ├── TypeAssertionSpecs.HaveExplicitMethod.cs
│ │ │ ├── TypeAssertionSpecs.HaveExplicitProperty.cs
│ │ │ ├── TypeAssertionSpecs.HaveImplicitConversionOperator.cs
│ │ │ ├── TypeAssertionSpecs.HaveIndexer.cs
│ │ │ ├── TypeAssertionSpecs.HaveMethod.cs
│ │ │ ├── TypeAssertionSpecs.HaveProperty.cs
│ │ │ ├── TypeAssertionSpecs.Implement.cs
│ │ │ ├── TypeAssertionSpecs.cs
│ │ │ ├── TypeExtensionsSpecs.cs
│ │ │ ├── TypeSelectorAssertionSpecs.cs
│ │ │ └── TypeSelectorSpecs.cs
│ │ ├── UIFactsDefinition.cs
│ │ └── Xml
│ │ ├── XAttributeAssertionSpecs.cs
│ │ ├── XAttributeFormatterSpecs.cs
│ │ ├── XDocumentAssertionSpecs.cs
│ │ ├── XDocumentFormatterSpecs.cs
│ │ ├── XElementAssertionSpecs.cs
│ │ ├── XElementFormatterSpecs.cs
│ │ ├── XmlElementAssertionSpecs.cs
│ │ ├── XmlNodeAssertionSpecs.cs
│ │ └── XmlNodeFormatterSpecs.cs
│ ├── TestFrameworks
│ │ ├── MSTestV2.Specs
│ │ │ ├── FrameworkSpecs.cs
│ │ │ └── MSTestV2.Specs.csproj
│ │ ├── MSpec.Specs
│ │ │ ├── FrameworkSpecs.cs
│ │ │ └── MSpec.Specs.csproj
│ │ ├── NUnit3.Specs
│ │ │ ├── FrameworkSpecs.cs
│ │ │ └── NUnit3.Specs.csproj
│ │ ├── NUnit4.Specs
│ │ │ ├── FrameworkSpecs.cs
│ │ │ └── NUnit4.Specs.csproj
│ │ └── XUnit2.Specs
│ │ ├── FrameworkSpecs.cs
│ │ └── XUnit2.Specs.csproj
│ ├── UWP.Specs
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── Assets
│ │ │ ├── LockScreenLogo.scale-200.png
│ │ │ ├── SplashScreen.scale-200.png
│ │ │ ├── Square150x150Logo.scale-200.png
│ │ │ ├── Square44x44Logo.scale-200.png
│ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ │ ├── StoreLogo.png
│ │ │ └── Wide310x150Logo.scale-200.png
│ │ ├── Package.appxmanifest
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── Default.rd.xml
│ │ ├── UWP.Specs.csproj
│ │ └── UwpSpecs.cs
│ └── VB.Specs
│ ├── VB.Specs.vbproj
│ └── VBSpecs.vb
├── build.cmd
├── build.ps1
├── build.sh
├── cSpell.json
├── docs
│ ├── CNAME
│ ├── Gemfile
│ ├── Gemfile.lock
│ ├── LICENSE.txt
│ ├── README.md
│ ├── Rakefile
│ ├── _config.yml
│ ├── _data
│ │ ├── mstest-migration
│ │ │ ├── assert.yml
│ │ │ ├── collectionAssert.yml
│ │ │ ├── exceptions.yml
│ │ │ └── stringAssert.yml
│ │ ├── navigation.yml
│ │ ├── tips
│ │ │ ├── collections.yml
│ │ │ ├── comparable.yml
│ │ │ ├── datetimes.yml
│ │ │ ├── dictionaries.yml
│ │ │ ├── exceptions.yml
│ │ │ ├── nullables.yml
│ │ │ ├── strings.yml
│ │ │ └── types.yml
│ │ └── ui-text.yml
│ ├── _includes
│ │ ├── analytics-providers
│ │ │ ├── custom.html
│ │ │ ├── google-gtag.html
│ │ │ ├── google-universal.html
│ │ │ └── google.html
│ │ ├── analytics.html
│ │ ├── archive-single.html
│ │ ├── assertion-comparison.html
│ │ ├── author-profile-custom-links.html
│ │ ├── author-profile.html
│ │ ├── base_path
│ │ ├── breadcrumbs.html
│ │ ├── browser-upgrade.html
│ │ ├── category-list.html
│ │ ├── comment.html
│ │ ├── comments-providers
│ │ │ ├── custom.html
│ │ │ ├── discourse.html
│ │ │ ├── disqus.html
│ │ │ ├── facebook.html
│ │ │ ├── google-plus.html
│ │ │ ├── scripts.html
│ │ │ ├── staticman.html
│ │ │ └── staticman_v2.html
│ │ ├── comments.html
│ │ ├── documents-collection.html
│ │ ├── editlink.html
│ │ ├── feature_row
│ │ ├── figure
│ │ ├── footer
│ │ │ └── custom.html
│ │ ├── footer.html
│ │ ├── gallery
│ │ ├── group-by-array
│ │ ├── head
│ │ │ └── custom.html
│ │ ├── head.html
│ │ ├── masthead.html
│ │ ├── nav_list
│ │ ├── page__hero.html
│ │ ├── page__hero_video.html
│ │ ├── page__taxonomy.html
│ │ ├── paginator.html
│ │ ├── post_pagination.html
│ │ ├── posts-category.html
│ │ ├── posts-tag.html
│ │ ├── read-time.html
│ │ ├── scripts.html
│ │ ├── search
│ │ │ ├── algolia-search-scripts.html
│ │ │ ├── lunr-search-scripts.html
│ │ │ └── search_form.html
│ │ ├── seo.html
│ │ ├── sidebar-ad.html
│ │ ├── sidebar.html
│ │ ├── social-share.html
│ │ ├── tag-list.html
│ │ ├── toc
│ │ ├── toc.html
│ │ ├── twitter.html
│ │ └── video
│ ├── _layouts
│ │ ├── archive-taxonomy.html
│ │ ├── archive.html
│ │ ├── categories.html
│ │ ├── category.html
│ │ ├── collection.html
│ │ ├── compress.html
│ │ ├── default.html
│ │ ├── home.html
│ │ ├── posts.html
│ │ ├── search.html
│ │ ├── single.html
│ │ ├── splash.html
│ │ ├── tag.html
│ │ └── tags.html
│ ├── _pages
│ │ ├── about.md
│ │ ├── assemblies.md
│ │ ├── basicassertions.md
│ │ ├── booleans.md
│ │ ├── collections.md
│ │ ├── datetimespans.md
│ │ ├── dictionaries.md
│ │ ├── enums.md
│ │ ├── eventmonitoring.md
│ │ ├── exceptions.md
│ │ ├── executiontime.md
│ │ ├── extensibility.md
│ │ ├── guids.md
│ │ ├── httpresponsemessages.md
│ │ ├── introduction.md
│ │ ├── nullabletypes.md
│ │ ├── numerictypes.md
│ │ ├── objectgraphs.md
│ │ ├── releases.md
│ │ ├── specialized.md
│ │ ├── streams.md
│ │ ├── strings.md
│ │ ├── tips.md
│ │ ├── typesandmethods.md
│ │ ├── upgradingtov6.md
│ │ ├── upgradingtov7.md
│ │ └── xml.md
│ ├── _sass
│ │ ├── minimal-mistakes
│ │ │ ├── _animations.scss
│ │ │ ├── _archive.scss
│ │ │ ├── _base.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _footer.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _masthead.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _navigation.scss
│ │ │ ├── _notices.scss
│ │ │ ├── _page.scss
│ │ │ ├── _print.scss
│ │ │ ├── _reset.scss
│ │ │ ├── _search.scss
│ │ │ ├── _sidebar.scss
│ │ │ ├── _syntax.scss
│ │ │ ├── _tables.scss
│ │ │ ├── _utilities.scss
│ │ │ ├── _variables.scss
│ │ │ ├── skins
│ │ │ │ └── _default.scss
│ │ │ └── vendor
│ │ │ ├── breakpoint
│ │ │ │ ├── _breakpoint.scss
│ │ │ │ ├── _context.scss
│ │ │ │ ├── _helpers.scss
│ │ │ │ ├── _legacy-settings.scss
│ │ │ │ ├── _no-query.scss
│ │ │ │ ├── _parsers.scss
│ │ │ │ ├── _respond-to.scss
│ │ │ │ ├── _settings.scss
│ │ │ │ └── parsers
│ │ │ │ ├── _double.scss
│ │ │ │ ├── _query.scss
│ │ │ │ ├── _resolution.scss
│ │ │ │ ├── _single.scss
│ │ │ │ ├── _triple.scss
│ │ │ │ ├── double
│ │ │ │ │ ├── _default-pair.scss
│ │ │ │ │ ├── _default.scss
│ │ │ │ │ └── _double-string.scss
│ │ │ │ ├── resolution
│ │ │ │ │ └── _resolution.scss
│ │ │ │ ├── single
│ │ │ │ │ └── _default.scss
│ │ │ │ └── triple
│ │ │ │ └── _default.scss
│ │ │ ├── magnific-popup
│ │ │ │ ├── _magnific-popup.scss
│ │ │ │ └── _settings.scss
│ │ │ └── susy
│ │ │ ├── _su.scss
│ │ │ ├── _susy-prefix.scss
│ │ │ ├── _susy.scss
│ │ │ ├── plugins
│ │ │ │ ├── _svg-grid.scss
│ │ │ │ └── svg-grid
│ │ │ │ ├── _prefix.scss
│ │ │ │ ├── _svg-api.scss
│ │ │ │ ├── _svg-grid-math.scss
│ │ │ │ ├── _svg-settings.scss
│ │ │ │ ├── _svg-unprefix.scss
│ │ │ │ └── _svg-utilities.scss
│ │ │ └── susy
│ │ │ ├── _api.scss
│ │ │ ├── _normalize.scss
│ │ │ ├── _parse.scss
│ │ │ ├── _settings.scss
│ │ │ ├── _su-math.scss
│ │ │ ├── _su-validate.scss
│ │ │ ├── _syntax-helpers.scss
│ │ │ ├── _unprefix.scss
│ │ │ └── _utilities.scss
│ │ └── minimal-mistakes.scss
│ ├── ads.txt
│ ├── assets
│ │ ├── css
│ │ │ └── main.scss
│ │ ├── images
│ │ │ ├── binoculars.svg
│ │ │ ├── book.svg
│ │ │ ├── checklist.svg
│ │ │ ├── community.svg
│ │ │ ├── customer-service.svg
│ │ │ ├── fluent_assertions_large_horizontal.svg
│ │ │ ├── gift.svg
│ │ │ ├── info-support.jpg
│ │ │ ├── jetbrainsrider.svg
│ │ │ ├── jigsaws.svg
│ │ │ ├── nugetlogo.svg
│ │ │ ├── swyfft.jpg
│ │ │ ├── twitter.svg
│ │ │ └── vote.svg
│ │ └── js
│ │ ├── _main.js
│ │ ├── lunr
│ │ │ ├── lunr-en.js
│ │ │ ├── lunr-gr.js
│ │ │ ├── lunr-store.js
│ │ │ ├── lunr.js
│ │ │ └── lunr.min.js
│ │ ├── main.min.js
│ │ ├── plugins
│ │ │ ├── gumshoe.js
│ │ │ ├── jquery.ba-throttle-debounce.js
│ │ │ ├── jquery.fitvids.js
│ │ │ ├── jquery.greedy-navigation.js
│ │ │ ├── jquery.magnific-popup.js
│ │ │ ├── jquery.smooth-scroll.min.js
│ │ │ └── smooth-scroll.js
│ │ └── vendor
│ │ └── jquery
│ │ └── jquery-3.5.1.js
│ ├── banner.js
│ ├── favicon.ico
│ ├── index.html
│ ├── package.json
│ ├── run.bat
│ └── staticman.yml
├── dotnet-install.ps1
├── global.json
├── nuget.config
├── package-lock.json
├── package.json
├── profile.yaml
├── qodana.sarif.json
└── qodana.yaml
99 directories, 998 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论