Persimmon.MuscleAssert 4.0.1
dotnet add package Persimmon.MuscleAssert --version 4.0.1
NuGet\Install-Package Persimmon.MuscleAssert -Version 4.0.1
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Persimmon.MuscleAssert" Version="4.0.1" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中引用该包。
paket add Persimmon.MuscleAssert --version 4.0.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以寻求支持。
#r "nuget: Persimmon.MuscleAssert, 4.0.1"
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将它复制到交互式工具或脚本的源代码中引用包。
// Install Persimmon.MuscleAssert as a Cake Addin #addin nuget:?package=Persimmon.MuscleAssert&version=4.0.1 // Install Persimmon.MuscleAssert as a Cake Tool #tool nuget:?package=Persimmon.MuscleAssert&version=4.0.1
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以寻求支持。
Persimmon.MuscleAssert
示例
Plain Persimmon 测试
代码
type PhoneNumber = {
CountryCode: string
AreaCode: string
LocalNumber: string
}
type Contact = {
FirstName: string
LastName: string
MiddleName: string option
PhoneNumbers: Dictionary<string, PhoneNumber>
}
type PhoneBook = {
Name: string
Contacts: Contact list
}
let example = test {
let walterPhones = Dictionary<string, PhoneNumber>()
walterPhones.Add("Home", { CountryCode = "1"; AreaCode = "505"; LocalNumber = "316-7871" })
walterPhones.Add("Work", { CountryCode = "1"; AreaCode = "505"; LocalNumber = "456-3788" })
let walterWhite = {
FirstName = "Walter"
LastName = "White"
MiddleName = None
PhoneNumbers = walterPhones
}
let jessePhones = Dictionary<string, PhoneNumber>()
jessePhones.Add("Home", { CountryCode = "1"; AreaCode = "505"; LocalNumber = "234-4628" })
let jessePinkman = {
FirstName = "Jesse"
LastName = "Pinkman"
MiddleName = Some ""
PhoneNumbers = jessePhones
}
let expected = {
Name = "Breaking Bad"
Contacts =
[
walterWhite
jessePinkman
]
}
let actual = {
expected with
Contacts =
[
{ walterWhite with MiddleName = Some "Bruce" }
{ jessePinkman with MiddleName = Some "Hartwell" }
]
}
do! assertEquals expected actual
}
结果
Assertion Violated: example
1. Expect: {Name = "Breaking Bad";
Contacts =
[{FirstName = "Walter";
LastName = "White";
MiddleName = None;
PhoneNumbers =
seq
[[Home, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber];
[Work, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber]];};
{FirstName = "Jesse";
LastName = "Pinkman";
MiddleName = Some "";
PhoneNumbers =
seq [[Home, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber]];}];}
Actual: {Name = "Breaking Bad";
Contacts =
[{FirstName = "Walter";
LastName = "White";
MiddleName = Some "Bruce";
PhoneNumbers =
seq
[[Home, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber];
[Work, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber]];};
{FirstName = "Jesse";
LastName = "Pinkman";
MiddleName = Some "Hartwell";
PhoneNumbers =
seq [[Home, Persimmon.MuscleAssert.Tests.AssertTest+Hoge+PhoneNumber]];}];}
使用 MuscleAssert
差异
+ open Persimmon.MuscleAssert
+
结果
Assertion Violated: example
1. .Contacts.[0].MiddleName
expected FSharpOption<String>.None
actual FSharpOption<String>.Some
.Contacts.[1].MiddleName.Value
expected
actual Hartwell
@@ -0,0 +1,8 @@
+Hartwell
产品 | 版本 兼容的和额外的目标框架版本。 |
---|---|
.NET | net5.0 已被计算。 net5.0-windows 已被计算。 net6.0 已被计算。 net6.0-android 已被计算。 net6.0-ios 已被计算。 net6.0-maccatalyst 已被计算。 net6.0-macos 已被计算。 net6.0-tvos 已被计算。 net6.0-windows 已被计算。 net7.0 已被计算。 net7.0-android 已被计算。 net7.0-ios 已被计算。 net7.0-maccatalyst 已被计算。 net7.0-macos 已被计算。 net7.0-tvos 已被计算。 net7.0-windows 已被计算。 net8.0 已被计算。 net8.0-android 已被计算。 net8.0-browser 已被计算。 net8.0-ios 已被计算。 net8.0-maccatalyst 已被计算。 net8.0-macos 已被计算。 net8.0-tvos 已被计算。 net8.0-windows 已被计算。 |
.NET Core | netcoreapp2.0 已被计算。 netcoreapp2.1 已被计算。 netcoreapp2.2 已被计算。 netcoreapp3.0 已被计算。 netcoreapp3.1 已被计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 已被计算。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Diff.Match.Patch (>= 3.0.1)
- FSharp.Core (>= 5.0.0)
- FSharp.Object.Diff (>= 2.1.0)
- Persimmon (>= 5.0.1)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 仓库
此包未被任何流行的 GitHub 仓库使用。