{"id":3692,"date":"2026-05-12T09:59:31","date_gmt":"2026-05-12T13:59:31","guid":{"rendered":"https:\/\/xceed.com\/?p=3692"},"modified":"2026-08-25T14:20:40","modified_gmt":"2026-08-25T18:20:40","slug":"fluentassertions-8-10-beequivalentto-ameliorations","status":"publish","type":"post","link":"https:\/\/xceed.com\/fr\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/","title":{"rendered":"FluentAssertions 8.10 : Quatre am\u00e9liorations de BeEquivalentTo que vous sentirez vraiment"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3692\" class=\"elementor elementor-3692\" wpc-filter-elementor-widget=\"1\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-63bf27f e-flex e-con-boxed e-con e-parent\" data-id=\"63bf27f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9247f33 elementor-widget elementor-widget-html\" data-id=\"9247f33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:22px 24px;margin:0 0 30px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <p style=\"margin:0 0 14px 0;\"><strong>FluentAssertions 8.10 : Am\u00e9liorations de la qualit\u00e9 de vie pour l'\u00e9quivalence (Null-as-Empty, meilleurs diagnostics, correspondance non ordonn\u00e9e plus rapide)<\/strong><\/p>\n  <p style=\"margin:0;\">FluentAssertions 8.10 semble modeste sur le papier, mais il cible exactement l'endroit o\u00f9 la plupart des suites de tests rencontrent des difficult\u00e9s : les comparaisons d'\u00e9quivalence et les diagnostics sur lesquels vous vous fiez lorsqu'elles \u00e9chouent. Si vous utilisez <strong style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;\">\u00catre\u00c9quivalent\u00c0<\/strong> lourdement (DTOs, contrats d'API, graphes d'objets imbriqu\u00e9s), ces changements r\u00e9duisent le bruit, am\u00e9liorent la lisibilit\u00e9 des \u00e9checs et acc\u00e9l\u00e8rent les cas lents.<\/p>\n<\/div>\n\n<p>Voici les quatre points forts et ce qu'ils changent dans la r\u00e9daction de tests au quotidien.<\/p>\n\n<h2 style=\"margin-top:40px;color:#f26522;\">1) #3202 \u2014 Ajouter les m\u00e9thodes `ComparingNullCollectionsAsEmpty` et `ComparingNullStringsAsEmpty` \u00e0 `BeEquivalentTo`<\/h2>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Qu'est-ce qui a chang\u00e9<\/h3>\n  <p style=\"margin:0;line-height:1.6;\">\n    FluentAssertions 8.10 ajoute deux nouvelles options d'\u00e9quivalence, donc <strong style=\"color:#f26522;\">null<\/strong> Les collections correspondent\n    <strong style=\"color:#f26522;\">vide<\/strong> collections, et <strong style=\"color:#f26522;\">null<\/strong> les cha\u00eenes peuvent correspondre\n    <strong style=\"color:#f26522;\">vide<\/strong> cha\u00eenes.\n  <\/p>\n  <div style=\"margin-top:10px;line-height:1.7;color:#1f2937;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;font-size:0.98em;\">\n    Comparer les collections nulles comme vides<br\/>\n    ComparerLesCha\u00eenesNullCommeVides\n  <\/div>\n<\/div>\n\n<p><strong>Pourquoi c'est important<\/strong><\/p>\n\n<p>Dans de nombreux syst\u00e8mes, la distinction entre null et vide n'a pas de sens. Les API omettent des champs, les s\u00e9rialiseurs produisent des valeurs nulles, et les couches de mappage peuvent retourner des collections nulles m\u00eame lorsque la logique m\u00e9tier les traite comme vides. Ces d\u00e9calages cr\u00e9aient auparavant des tests fragiles ou for\u00e7aient une pr\u00e9-normalisation.<\/p>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">D\u00e9tail cl\u00e9 : graphes d'objets sym\u00e9triques + imbriqu\u00e9s<\/h3>\n  <p style=\"margin:0;line-height:1.6;\">\n    Le comportement est <strong style=\"color:#f26522;\">sym\u00e9trique<\/strong> (fonctionne de chaque c\u00f4t\u00e9 de la comparaison) et il s'applique \u00e9galement\n    \u00e0 l'int\u00e9rieur <strong style=\"color:#f26522;\">graphes d'objets imbriqu\u00e9s<\/strong>. Si une propri\u00e9t\u00e9 imbriqu\u00e9e est nulle d'un c\u00f4t\u00e9 et vide de l'autre, elle peut toujours correspondre lorsque l'option est activ\u00e9e.\n  <\/p>\n<\/div>\n\n<h2 style=\"margin-top:42px;color:#f26522;\">2) #3203 \u2014 Inclure l&#x27;index d&#x27;origine dans les messages d&#x27;erreur relatifs aux \u00e9l\u00e9ments superflus<\/h2>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Qu'est-ce qui a chang\u00e9<\/h3>\n  <p style=\"margin:0;line-height:1.6;\">\n    Les \u00e9checs d'\u00e9quivalence pour les collections avec des \u00e9l\u00e9ments suppl\u00e9mentaires sont d\u00e9sormais plus exploitables. Les messages d'\u00e9chec incluent les\n    <strong style=\"color:#f26522;\">index original<\/strong> de chaque \u00e9l\u00e9ment superflu dans le sujet.\n  <\/p>\n<\/div>\n\n<p><strong>Pourquoi c'est important<\/strong><\/p>\n\n<p>Lorsque l'ordre est ignor\u00e9 et que les r\u00e8gles de correspondance sont complexes, les erreurs \u201c\u00a0\u00e9l\u00e9ment suppl\u00e9mentaire\u00a0\u201d sont parmi les plus longues \u00e0 d\u00e9boguer. Avec l'index d'origine inclus, vous pouvez acc\u00e9der directement \u00e0 l'\u00e9l\u00e9ment probl\u00e9matique, ce qui est particuli\u00e8rement utile pour les grandes collections produites par des pipelines.<\/p>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Impact pratique<\/h3>\n  <ul style=\"padding-left:22px;margin:0;\">\n    <li style=\"margin-bottom:10px;\">Diagnostic plus rapide de \u201c pourquoi y a-t-il un article suppl\u00e9mentaire ? \u201d<\/li>\n    <li style=\"margin-bottom:10px;\">Corr\u00e9lation plus facile avec la logique LINQ\/filtrage\/jointure en amont<\/li>\n    <li>Moins de temps d'impression de collections enti\u00e8res dans les journaux<\/li>\n  <\/ul>\n<\/div>\n\n<h2 style=\"margin-top:42px;color:#f26522;\">3) #3188 \u2014 Acc\u00e9l\u00e9ration significative de la fonction `BeEquivalentTo` pour les grandes collections non ordonn\u00e9es<\/h2>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Qu'est-ce qui a chang\u00e9<\/h3>\n  <p style=\"margin:0;line-height:1.6;\">\n    Les performances sont am\u00e9lior\u00e9es pour les comparaisons d'\u00e9quivalences non ordonn\u00e9es (surtout avec\n    <strong style=\"color:#f26522;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;\">SansOrdreStrict()<\/strong>)\n    sur de grandes collections.\n  <\/p>\n<\/div>\n\n<p><strong>Pourquoi c'est important<\/strong><\/p>\n\n<p>Les grandes comparaisons non ordonn\u00e9es sont une source fr\u00e9quente de tests lents. Le gain principal provient du remplacement de la mise en correspondance co\u00fbteuse bas\u00e9e sur les permutations par une approche plus \u00e9volutive. <strong>strat\u00e9gie gloutonne<\/strong>, plus les r\u00e9ductions d'allocation et les optimisations de simulation. Effet net : moins de temps d'attente pour les suites gourmandes en \u00e9quivalences et moins de plaintes du type \u201c c'est trop lent pour fonctionner localement \u201d.<\/p>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Impact pratique<\/h3>\n  <ul style=\"padding-left:22px;margin:0;\">\n    <li style=\"margin-bottom:10px;\">Comparaisons non ordonn\u00e9es plus rapides sur de grandes collections<\/li>\n    <li style=\"margin-bottom:10px;\">Meilleure scalabilit\u00e9 \u00e0 mesure que les ensembles de donn\u00e9es augmentent<\/li>\n    <li>Co\u00fbts g\u00e9n\u00e9raux inf\u00e9rieurs gr\u00e2ce \u00e0 moins d'allocations et moins de retour arri\u00e8re<\/li>\n  <\/ul>\n<\/div>\n\n<h2 style=\"margin-top:42px;color:#f26522;\">4) #3187 \u2014 G\u00e9n\u00e8re une erreur descriptive en cas d&#x27;\u00e9chec lorsque des r\u00e8gles bas\u00e9es sur le chemin sont utilis\u00e9es avec des types \u00e0 s\u00e9mantique de valeur<\/h2>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Qu'est-ce qui a chang\u00e9<\/h3>\n  <p style=\"margin:0;line-height:1.6;\">\n    FluentAssertions corrige un cas limite d'\u00e9quivalence d\u00e9routant : les r\u00e8gles bas\u00e9es sur les chemins comme\n    <strong style=\"color:#f26522;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;\">Incluant()<\/strong>\n    et\n    <strong style=\"color:#f26522;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;\">Exclure()<\/strong>\n    que des membres cibl\u00e9s de <strong style=\"color:#f26522;\">types s\u00e9mantiques de valeur<\/strong> ont \u00e9t\u00e9 pr\u00e9c\u00e9demment ignor\u00e9s silencieusement.\n  <\/p>\n<\/div>\n\n<p><strong>Pourquoi c'est important<\/strong><\/p>\n\n<p>Les ignor\u00e9s silencieux sont dangereux dans les tests : vous pensez avoir contraint la comparaison, mais la r\u00e8gle ne s'est jamais appliqu\u00e9e. Avec la version 8.10, ces cas \u00e9chouent d\u00e9sormais explicitement avec une erreur claire expliquant pourquoi la r\u00e8gle ne s'applique pas et comment la r\u00e9soudre. C'est un gain en termes de correction, en particulier pour les \u00e9quipes qui s'appuient sur la configuration bas\u00e9e sur les chemins pour que les assertions restent cibl\u00e9es.<\/p>\n\n<div style=\"background:linear-gradient(135deg,#fff4ec 0%,#fffaf7 100%);border-left:6px solid #f26522;padding:18px 20px;margin:18px 0;border-radius:12px;box-shadow:0 8px 24px rgba(242,101,34,0.10);\">\n  <h3 style=\"margin:0 0 10px 0;color:#f26522;font-weight:800;\">Impact pratique<\/h3>\n  <ul style=\"padding-left:22px;margin:0;\">\n    <li style=\"margin-bottom:10px;\">Fini les surprises silencieuses de \u201cla r\u00e8gle ne s'appliquait pas\u201d<\/li>\n    <li style=\"margin-bottom:10px;\">Commentaires plus clairs lorsque la configuration est invalide<\/li>\n    <li>R\u00e8gles d'\u00e9quivalence plus fiables dans de grandes suites<\/li>\n  <\/ul>\n<\/div>\n\n<h2 style=\"margin-top:42px;color:#f26522;\">Que faire ensuite<\/h2>\n\n<p>Si vous mettez \u00e0 niveau vers FluentAssertions 8.10, voici une liste de contr\u00f4le rapide :<\/p>\n\n<ul style=\"padding-left:22px;\">\n  <li style=\"margin-bottom:10px;\">Si votre domaine traite les valeurs manquantes comme vides, envisagez d'activer les options null-as-empty.<\/li>\n  <li style=\"margin-bottom:10px;\">Si vous comparez de grandes collections sans ordre strict, attendez-vous \u00e0 des ex\u00e9cutions plus rapides et \u00e0 moins de ralentissements de la suite de tests.<\/li>\n  <li style=\"margin-bottom:10px;\">Si vous utilisez beaucoup de r\u00e8gles bas\u00e9es sur les chemins, surveillez les erreurs de configuration nouvellement apparues (qui \u00e9taient auparavant ignor\u00e9es).<\/li>\n  <li>R\u00e9ex\u00e9cutez les tests qui impliquent beaucoup d'\u00e9quivalences et confirmez que les \u00e9checs sont maintenant plus faciles \u00e0 diagnostiquer.<\/li>\n<\/ul>\n\n<h2 style=\"margin-top:42px;color:#f26522;\"><\/h2>\n\n<div style=\"text-align:center;padding:36px 24px;margin:36px 0;\">\n  <div style=\"background:#fff4ec;border:1px solid #f3d7c9;border-radius:14px;padding:34px 22px;margin:42px 0;text-align:center;\">\n    <p style=\"font-size:1.15em;line-height:1.6;color:#5b657a;max-width:760px;margin:0 auto 22px auto;\">Si votre suite de tests s'appuie sur <strong style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;\">\u00catre\u00c9quivalent\u00c0<\/strong>, FluentAssertions 8.10 est une mise \u00e0 niveau \u00e0 faible risque et \u00e0 fort impact : moins d'\u00e9checs fragiles, des diagnostics plus clairs, des comparaisons non ordonn\u00e9es plus rapides et une correction plus stricte des r\u00e8gles de configuration.<\/p>\n\n    <div style=\"display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:18px;\">\n      <a href=\"https:\/\/xceed.com\/fr\/produits\/tests-unitaires\/assertions-fluentes\/\" style=\"display:inline-block;background:#f26522;color:#ffffff;text-decoration:none;padding:14px 28px;border-radius:10px;font-weight:700;font-size:1em;box-shadow:0 6px 18px rgba(242,101,34,0.18);\">\n        Afficher FluentAssertions\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<h2 style=\"margin-top:42px;color:#f26522;\">FAQ<\/h2>\n\n<div style=\"background:#fff8f4;border:1px solid #f8d7c7;padding:20px 22px;border-radius:12px;margin:24px 0;\">\n  <h3 style=\"margin-top:0;color:#222;\">Le traitement de null en tant que vide s'applique-t-il uniquement au niveau sup\u00e9rieur ?<\/h3>\n  <p style=\"margin-bottom:0;\">Non. Les nouvelles options s'appliquent \u00e9galement \u00e0 l'int\u00e9rieur des graphes d'objets, de sorte que les propri\u00e9t\u00e9s imbriqu\u00e9es en b\u00e9n\u00e9ficient \u00e9galement.<\/p>\n<\/div>\n\n<div style=\"background:#fff8f4;border:1px solid #f8d7c7;padding:20px 22px;border-radius:12px;margin:24px 0;box-shadow:0 6px 18px rgba(242,101,34,0.08);\">\n  <h3 style=\"margin-top:0;color:#222;\">La comparaison null-vide est-elle unidirectionnelle ?<\/h3>\n  <p style=\"margin-bottom:0;\">Non, \u00e7a fonctionne sym\u00e9triquement des deux c\u00f4t\u00e9s de la comparaison.<\/p>\n<\/div>\n\n<div style=\"background:#fff8f4;border:1px solid #f8d7c7;padding:20px 22px;border-radius:12px;margin:24px 0;\">\n  <h3 style=\"margin-top:0;color:#222;\">Les diagnostics d'index non pertinents am\u00e9lior\u00e9s modifieront-ils le comportement des assertions ?<\/h3>\n  <p style=\"margin-bottom:0;\">Non. Il s'agit d'une am\u00e9lioration des diagnostics. L'assertion \u00e9choue toujours pour la m\u00eame raison ; le message d'erreur est simplement plus exploitable.<\/p>\n<\/div>\n\n<div style=\"background:#fff8f4;border:1px solid #f8d7c7;padding:20px 22px;border-radius:12px;margin:24px 0;\">\n  <h3 style=\"margin-top:0;color:#222;\">Qu'est-ce qui a chang\u00e9 en ce qui concerne les performances des collections non ordonn\u00e9es ?<\/h3>\n  <p style=\"margin-bottom:0;\">Les comparaisons non ordonn\u00e9es (par exemple, en utilisant WithoutStrictOrdering) sont significativement plus rapides sur de grandes collections gr\u00e2ce \u00e0 une strat\u00e9gie de correspondance plus \u00e9volutive et \u00e0 plusieurs optimisations d'allocation\/ex\u00e9cution \u00e0 sec.<\/p>\n<\/div>\n\n<div style=\"background:#fff8f4;border:1px solid #f8d7c7;padding:20px 22px;border-radius:12px;margin:24px 0;\">\n  <h3 style=\"margin-top:0;color:#222;\">Pourquoi les r\u00e8gles bas\u00e9es sur les chemins \u00e9chouent-elles maintenant pour les types s\u00e9mantiques de valeur ?<\/h3>\n  <p style=\"margin-bottom:0;\">Car ces r\u00e8gles ne s'appliquent pas aux types \u00e0 s\u00e9mantique de valeur de la mani\u00e8re attendue par la plupart des gens. Au lieu d'ignorer silencieusement la r\u00e8gle, FluentAssertions \u00e9choue d\u00e9sormais avec une erreur descriptive afin que vous puissiez corriger explicitement la configuration.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>FluentAssertions 8.10 offre quatre am\u00e9liorations percutantes de BeEquivalentTo : options d'\u00e9quivalence null-as-empty, diagnostics am\u00e9lior\u00e9s pour les \u00e9l\u00e9ments superflus, correspondance non ordonn\u00e9e plus rapide et \u00e9checs plus clairs pour les r\u00e8gles invalides bas\u00e9es sur les chemins.<\/p>","protected":false},"author":12,"featured_media":3693,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[78,50],"tags":[],"products":[],"class_list":["post-3692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-release-notes","category-releases"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>FluentAssertions 8.10 BeEquivalentTo Improvements (4 Updates)<\/title>\n<meta name=\"description\" content=\"FluentAssertions 8.10 BeEquivalentTo improvements reduce brittle tests and speed up unordered comparisons, with better diagnostics and clearer configuration errors.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xceed.com\/fr\/blog\/liberations\/fluentassertions-8-10-beequivalentto-ameliorations\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FluentAssertions 8.10 BeEquivalentTo Improvements (4 Updates)\" \/>\n<meta property=\"og:description\" content=\"FluentAssertions 8.10 BeEquivalentTo improvements reduce brittle tests and speed up unordered comparisons, with better diagnostics and clearer configuration errors.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xceed.com\/fr\/blog\/liberations\/fluentassertions-8-10-beequivalentto-ameliorations\/\" \/>\n<meta property=\"og:site_name\" content=\"Xceed Software\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-12T13:59:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T18:20:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Christopher Radford\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christopher Radford\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/\"},\"author\":{\"name\":\"Christopher Radford\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/79a6cce48b70a88e6701fef086d7c351\"},\"headline\":\"FluentAssertions 8.10: Four BeEquivalentTo Improvements You\u2019ll Actually Feel\",\"datePublished\":\"2026-05-12T13:59:31+00:00\",\"dateModified\":\"2026-08-25T18:20:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/\"},\"wordCount\":770,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Xceed-PDF-Library-for-.NET-2.0-9.png\",\"articleSection\":[\"Release Notes\",\"Releases\"],\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/\",\"name\":\"FluentAssertions 8.10 BeEquivalentTo Improvements (4 Updates)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Xceed-PDF-Library-for-.NET-2.0-9.png\",\"datePublished\":\"2026-05-12T13:59:31+00:00\",\"dateModified\":\"2026-08-25T18:20:40+00:00\",\"description\":\"FluentAssertions 8.10 BeEquivalentTo improvements reduce brittle tests and speed up unordered comparisons, with better diagnostics and clearer configuration errors.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#primaryimage\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Xceed-PDF-Library-for-.NET-2.0-9.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Xceed-PDF-Library-for-.NET-2.0-9.png\",\"width\":1024,\"height\":683},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/releases\\\/fluentassertions-8-10-beequivalentto-improvements\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/xceed.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FluentAssertions 8.10: Four BeEquivalentTo Improvements You\u2019ll Actually Feel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"name\":\"Xceed Software\",\"description\":\"Provides tools for .NET, Windows Forms, WPF, Silverlight, and ASP.NET developers to create better applications.\",\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/xceed.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\",\"name\":\"Xceed Software\",\"alternateName\":\"Xceed Software\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Untitled-design-24.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Untitled-design-24.png\",\"width\":512,\"height\":512,\"caption\":\"Xceed Software\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/79a6cce48b70a88e6701fef086d7c351\",\"name\":\"Christopher Radford\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g\",\"caption\":\"Christopher Radford\"},\"sameAs\":[\"http:\\\/\\\/www.localhost:10003\"],\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/blog\\\/author\\\/radfordc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FluentAssertions 8.10 Am\u00e9liorations de BeEquivalentTo (4 mises \u00e0 jour)","description":"FluentAssertions 8.10 BeEquivalentTo am\u00e9lior\u00e9 r\u00e9duit les tests fragiles et acc\u00e9l\u00e8re les comparaisons non ordonn\u00e9es, avec de meilleurs diagnostics et des erreurs de configuration plus claires.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xceed.com\/fr\/blog\/liberations\/fluentassertions-8-10-beequivalentto-ameliorations\/","og_locale":"fr_CA","og_type":"article","og_title":"FluentAssertions 8.10 BeEquivalentTo Improvements (4 Updates)","og_description":"FluentAssertions 8.10 BeEquivalentTo improvements reduce brittle tests and speed up unordered comparisons, with better diagnostics and clearer configuration errors.","og_url":"https:\/\/xceed.com\/fr\/blog\/liberations\/fluentassertions-8-10-beequivalentto-ameliorations\/","og_site_name":"Xceed Software","article_published_time":"2026-05-12T13:59:31+00:00","article_modified_time":"2026-08-25T18:20:40+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png","type":"image\/png"}],"author":"Christopher Radford","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Christopher Radford","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#article","isPartOf":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/"},"author":{"name":"Christopher Radford","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/79a6cce48b70a88e6701fef086d7c351"},"headline":"FluentAssertions 8.10: Four BeEquivalentTo Improvements You\u2019ll Actually Feel","datePublished":"2026-05-12T13:59:31+00:00","dateModified":"2026-08-25T18:20:40+00:00","mainEntityOfPage":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/"},"wordCount":770,"commentCount":0,"publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"image":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png","articleSection":["Release Notes","Releases"],"inLanguage":"fr-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/","url":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/","name":"FluentAssertions 8.10 Am\u00e9liorations de BeEquivalentTo (4 mises \u00e0 jour)","isPartOf":{"@id":"https:\/\/xceed.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#primaryimage"},"image":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png","datePublished":"2026-05-12T13:59:31+00:00","dateModified":"2026-08-25T18:20:40+00:00","description":"FluentAssertions 8.10 BeEquivalentTo am\u00e9lior\u00e9 r\u00e9duit les tests fragiles et acc\u00e9l\u00e8re les comparaisons non ordonn\u00e9es, avec de meilleurs diagnostics et des erreurs de configuration plus claires.","breadcrumb":{"@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#primaryimage","url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/05\/Xceed-PDF-Library-for-.NET-2.0-9.png","width":1024,"height":683},{"@type":"BreadcrumbList","@id":"https:\/\/xceed.com\/blog\/releases\/fluentassertions-8-10-beequivalentto-improvements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/xceed.com\/"},{"@type":"ListItem","position":2,"name":"FluentAssertions 8.10: Four BeEquivalentTo Improvements You\u2019ll Actually Feel"}]},{"@type":"WebSite","@id":"https:\/\/xceed.com\/fr\/#website","url":"https:\/\/xceed.com\/fr\/","name":"Xceed Software","description":"Fournit des outils aux d\u00e9veloppeurs .NET, Windows Forms, WPF, Silverlight et ASP.NET pour cr\u00e9er de meilleures applications.","publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xceed.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/xceed.com\/fr\/#organization","name":"Xceed Software","alternateName":"Xceed Software","url":"https:\/\/xceed.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/07\/Untitled-design-24.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/07\/Untitled-design-24.png","width":512,"height":512,"caption":"Xceed Software"},"image":{"@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/79a6cce48b70a88e6701fef086d7c351","name":"Christopher Radford","image":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/646a50aec7dd7187eab0ace3be81c465cdf54ce89b57357657f254b7cb1b996c?s=96&d=mm&r=g","caption":"Christopher Radford"},"sameAs":["http:\/\/www.localhost:10003"],"url":"https:\/\/xceed.com\/fr\/blog\/author\/radfordc\/"}]}},"_links":{"self":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/comments?post=3692"}],"version-history":[{"count":1,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3692\/revisions"}],"predecessor-version":[{"id":4186,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3692\/revisions\/4186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media\/3693"}],"wp:attachment":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media?parent=3692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/categories?post=3692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/tags?post=3692"},{"taxonomy":"products","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/products?post=3692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}