|
| 1 | +--- |
| 2 | +title: Transition de Fluent Assertions vers une licence commerciale |
| 3 | +date: 2025-01-15 12:00:00 -0400 |
| 4 | +categories: [outil-developpement] |
| 5 | +tags: [dotnet, fluentassertions] |
| 6 | +--- |
| 7 | + |
| 8 | +[Fluent Assertions](https://fluentassertions.com/), une des bibliothèques .NET les plus populaires pour écrire des assertions fluides et expressives dans les tests unitaires, a récemment franchi une étape importante en [changeant de modèle de licence](https://github.com/fluentassertions/fluentassertions/pull/2943). Depuis la version 8.0.0, la bibliothèque est soumise à une [licence commerciale](https://x.com/ddoomen/status/1879138055484809616), ce qui signifie que les utilisateurs commerciaux doivent désormais acheter une licence pour continuer à l'utiliser. |
| 9 | + |
| 10 | +## Une réaction communautaire : la naissance d'AwesomeAssertions |
| 11 | + |
| 12 | +Ce changement a suscité des réactions mitigées dans la communauté des développeurs. Beaucoup ont exprimé leur désir de continuer à utiliser une solution open source. En réponse à ces besoins, un projet communautaire nommé **AwesomeAssertions** a été lancé. Ce projet vise à offrir une alternative open source, sous licence Apache 2.0, permettant de bénéficier des fonctionnalités clés de Fluent Assertions sans les contraintes liées à une licence commerciale. |
| 13 | + |
| 14 | +## Maintenir Fluent Assertions sous licence open source |
| 15 | + |
| 16 | +Pour les développeurs qui souhaitent continuer à utiliser Fluent Assertions sans adopter la nouvelle licence commerciale, il est possible de verrouiller la version à la 7.0.0, la dernière version disponible sous l'ancienne licence open source. |
| 17 | + |
| 18 | +Voici comment procéder dans votre fichier de projet (.csproj) : |
| 19 | + |
| 20 | +```xml |
| 21 | +<PackageReference Include="FluentAssertions" Version="[7.0.0]" /> |
| 22 | +``` |
| 23 | + |
| 24 | +Cela garantit que votre projet reste sur la version 7.0.0, évitant ainsi toute mise à jour involontaire vers une version soumise à la nouvelle licence. |
| 25 | + |
| 26 | +## Alternatives disponibles |
| 27 | + |
| 28 | +L'écosystème .NET propose plusieurs autres bibliothèques et solutions pour écrire des assertions dans les tests unitaires : |
| 29 | + |
| 30 | +- **Fluent Assertions 8.0.0 et versions ultérieures** : Pour ceux qui n'ont pas de problème avec le modèle commercial, ces versions offrent des fonctionnalités avancées, avec un support prioritaire et des garanties additionnelles. |
| 31 | + |
| 32 | +- **[AwesomeAssertions](https://github.com/meenzen/AwesomeAssertions)** : Ce projet communautaire en cours de développement sous licence Apache 2.0 offre une alternative open source aux versions commerciales de Fluent Assertions. |
| 33 | + |
| 34 | +- **[Shouldly](https://github.com/shouldly/shouldly)** : Une bibliothèque d'assertions connue pour ses messages d'erreur lisibles et informatifs en cas d'échec d'une assertion, tout en fournissant une syntaxe simple et intuitive. |
| 35 | + |
| 36 | +- **[TUnit](https://github.com/thomhurst/TUnit)** : Un framework de test moderne et performant pour .NET 8 et versions ultérieures. Bien qu'il soit principalement conçu comme un framework de test complet, il inclut des fonctionnalités d'assertion. |
| 37 | + |
| 38 | +- **Assertions natives** : Utiliser des assertions telles que `Assert.Equal` ou `Assert.True` directement via le framework de test par défaut. |
| 39 | + |
| 40 | +## En savoir plus |
| 41 | + |
| 42 | +Pour ceux qui souhaitent mieux comprendre le contexte, Nick Chapsas a publié une vidéo analysant ce changement et ses implications. |
| 43 | + |
| 44 | +<iframe width="740" height="473" src="https://www.youtube.com/embed/ZFc6jcaM6Ms" title="Testing Entity Framework Core Correctly in .NET" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> |
| 45 | + |
| 46 | +## Conclusion |
| 47 | + |
| 48 | +Le passage de Fluent Assertions à une licence commerciale marque un tournant dans l'écosystème .NET. Bien que cela puisse créer des contraintes pour certains utilisateurs, des alternatives comme `AwesomeAssertions` ou `Shouldly` offrent des solutions adaptées. Chaque équipe doit évaluer ses besoins en termes de licence, de support et de fonctionnalités pour choisir la meilleure option. |
| 49 | + |
| 50 | +💡 Restez à l'affût, je devrais republier bientôt pour partager l'orientation que nous aurons choisie. |
0 commit comments