{"id":5363,"date":"2025-01-16T11:19:53","date_gmt":"2025-01-16T10:19:53","guid":{"rendered":"https:\/\/thinkr.fr\/abcdr\/utiliser_testthat_pour_tester_un_package_r\/"},"modified":"2025-01-16T11:19:53","modified_gmt":"2025-01-16T10:19:53","slug":"utiliser_testthat_pour_tester_un_package_r","status":"publish","type":"post","link":"https:\/\/thinkr.fr\/abcdr\/utiliser_testthat_pour_tester_un_package_r\/","title":{"rendered":"Utiliser testthat pour tester un package R"},"content":{"rendered":"<h1>Utiliser testthat pour tester un package R<\/h1>\n<p>Lorsque vous d\u00e9veloppez un package R, il est crucial de s&rsquo;assurer que votre code fonctionne comme pr\u00e9vu. Pour cela, la biblioth\u00e8que <code>testthat<\/code> est un outil incontournable qui facilite l&rsquo;\u00e9criture de tests unitaires. Dans cet article, nous allons voir comment utiliser <code>testthat<\/code> pour tester un package R avec un exemple concret.<\/p>\n<h2>Installation de testthat<\/h2>\n<p>Avant de commencer, assurez-vous que le package <code>testthat<\/code> est install\u00e9. Vous pouvez l&rsquo;installer depuis CRAN avec la commande suivante :<\/p>\n<pre><code>install.packages(\"testthat\")<\/code><\/pre>\n<h2>Structure d&rsquo;un package R<\/h2>\n<p>Un package R a une structure sp\u00e9cifique. Pour cet exemple, nous allons cr\u00e9er un package simple appel\u00e9 <code>monpackage<\/code>. Voici comment cr\u00e9er la structure de base :<\/p>\n<pre><code>usethis::create_package(\"monpackage\")<\/code><\/pre>\n<p>Cette commande cr\u00e9e un dossier <code>monpackage<\/code> avec les fichiers n\u00e9cessaires. Ensuite, nous allons cr\u00e9er une fonction simple \u00e0 tester.<\/p>\n<h2>Cr\u00e9ation d&rsquo;une fonction<\/h2>\n<p>Dans le dossier <code>R<\/code> de votre package, cr\u00e9ons une fonction qui additionne deux nombres. Cr\u00e9ez un fichier <code>addition.R<\/code> et ajoutez le code suivant :<\/p>\n<pre><code class=\"language-R\">#' Additionne deux nombres\n#'\n#' @param a Un nombre\n#' @param b Un nombre\n#' @return La somme de a et b\n#' @export\naddition &lt;- function(a, b) {\n  return(a + b)\n}<\/code><\/pre>\n<h2>\u00c9criture des tests avec testthat<\/h2>\n<p>Maintenant, nous allons \u00e9crire des tests pour notre fonction <code>addition<\/code>. Cr\u00e9ez un dossier <code>tests\/testthat<\/code> dans votre package, puis cr\u00e9ez un fichier <code>test-addition.R<\/code> \u00e0 l&rsquo;int\u00e9rieur de ce dossier. Ajoutez le code suivant :<\/p>\n<pre><code class=\"language-R\">library(testthat)\nlibrary(monpackage)\n\ntest_that(\"addition fonctionne correctement\", {\n  expect_equal(addition(1, 2), 3)\n  expect_equal(addition(-1, 1), 0)\n  expect_equal(addition(0, 0), 0)\n})<\/code><\/pre>\n<h3>Explication du code de test<\/h3>\n<ul>\n<li><code>library(testthat)<\/code> : Charge le package <code>testthat<\/code>.<\/li>\n<li><code>library(monpackage)<\/code> : Charge votre package pour pouvoir tester ses fonctions.<\/li>\n<li><code>test_that(\"addition fonctionne correctement\", {...})<\/code> : D\u00e9finit un groupe de tests pour la fonction <code>addition<\/code>.<\/li>\n<li><code>expect_equal(...)<\/code> : V\u00e9rifie que le r\u00e9sultat de la fonction est \u00e9gal \u00e0 la valeur attendue.<\/li>\n<\/ul>\n<h2>Ex\u00e9cution des tests<\/h2>\n<p>Pour ex\u00e9cuter les tests, vous pouvez utiliser la fonction suivante dans la console R :<\/p>\n<pre><code>devtools::test()<\/code><\/pre>\n<p>Cette commande ex\u00e9cutera tous les tests pr\u00e9sents dans le dossier <code>tests\/testthat<\/code>. Vous devriez voir un message indiquant que tous les tests ont r\u00e9ussi si tout fonctionne correctement.<\/p>\n<h2>Conclusion<\/h2>\n<p>Dans cet article, nous avons vu comment utiliser <code>testthat<\/code> pour tester un package R. Nous avons cr\u00e9\u00e9 une fonction simple et \u00e9crit des tests pour nous assurer qu&rsquo;elle fonctionne comme pr\u00e9vu. L&rsquo;utilisation de tests unitaires est une bonne pratique qui vous aidera \u00e0 maintenir la qualit\u00e9 de votre code au fil du temps. N&rsquo;h\u00e9sitez pas \u00e0 explorer davantage les fonctionnalit\u00e9s de <code>testthat<\/code> pour \u00e9crire des tests plus complexes et robustes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Utiliser testthat pour tester un package R Lorsque vous d\u00e9veloppez un package R, il est crucial de s&rsquo;assurer que votre code fonctionne comme pr\u00e9vu. Pour cela, la biblioth\u00e8que testthat est un outil incontournable qui facilite l&rsquo;\u00e9criture de tests unitaires. Dans cet article, nous allons voir comment utiliser testthat pour tester un package R avec un exemple concret. Installation de testthat Avant de commencer, assurez-vous que le package testthat est install\u00e9. Vous pouvez l&rsquo;installer depuis CRAN avec la commande suivante : install.packages(\u00ab\u00a0testthat\u00a0\u00bb) Structure d&rsquo;un package R Un package R a une structure sp\u00e9cifique. Pour cet exemple, nous allons cr\u00e9er un package simple appel\u00e9 monpackage. Voici comment<a class=\"more-link\" href=\"https:\/\/thinkr.fr\/abcdr\/utiliser_testthat_pour_tester_un_package_r\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"twitter_399453572_399453572":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[230],"tags":[232,231],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-vincent","4":"post-5363","6":"format-standard","7":"category-tests","8":"post_tag-tests","9":"post_tag-testthat"},"acf":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p9O7Sx-1ov","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/5363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/comments?post=5363"}],"version-history":[{"count":0,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/posts\/5363\/revisions"}],"wp:attachment":[{"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/media?parent=5363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/categories?post=5363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkr.fr\/abcdr\/wp-json\/wp\/v2\/tags?post=5363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}