[R-pkg-devel] Is using global assignment in package tests allowed?

James Pustejovsky jepu@to @end|ng |rom gm@||@com
Thu Jan 27 16:56:17 CET 2022


But I am not using global variables at all in the package code (in
/R)---only for unit testing. Is this distinction relevant? Or do I need to
avoid global assignment even in the unit tests?

On Thu, Jan 27, 2022 at 9:40 AM Dirk Eddelbuettel <edd using debian.org> wrote:

>
> On 27 January 2022 at 07:20, Jeff Newmiller wrote:
> | I don't know the answer to your question, but "beyond my ken" doesn't
> sound like a very convincing reason. Mucking with any environment that
> isn't yours is asking for trouble... the behavior you depend on today may
> come into conflict with the code you are coordinating with when you least
> expect it.
>
> Right on.
>
> Yes a number of packages (of mine and other people) use a different
> approach
> to maintain 'global state' without ... using 'global variables' (== bad).
>
> The trick is something like `pkgenv <- new.env()` in R/zzz.R and to then
> also
> set an option or two you need in .onLoad as eg  `pkgenv[["prefence"]] <-
> "foo"`
> which you can later test for, alter, ... at will.
>
> All without running afould of what `R CMD check --as-cran` may hate, all
> the
> while maintaining your logic flow.
>
> Dirk
>
> --
> https://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list