Persimmon.MuscleAssert
4.0.1
dotnet add package Persimmon.MuscleAssert --version 4.0.1
NuGet\Install-Package Persimmon.MuscleAssert -Version 4.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Persimmon.MuscleAssert" Version="4.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Persimmon.MuscleAssert --version 4.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Persimmon.MuscleAssert, 4.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Persimmon.MuscleAssert
Examples
Plain Persimmon test
code:
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
}
result:
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]];}];}
Using MuscleAssert
difference:
+ open Persimmon.MuscleAssert
+
result:
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
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.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 packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.