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                
#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                

Persimmon.MuscleAssert

NuGet Status

示例

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 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 仓库

此包未被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
4.0.1 1,004 3/9/2022
4.0.0 951 3/7/2022
3.0.0 1,511 6/20/2018
2.0.0 1,412 11/28/2017
1.0.1 1,491 4/10/2017
1.0.0 1,451 4/6/2017
0.7.2 1,553 9/29/2016
0.7.1 1,451 9/6/2016
0.7.0 1,420 9/4/2016
0.6.0 1,553 6/28/2016
0.5.0 1,500 6/2/2016