Модульное тестирование — Среда сравнения

#r #unit-testing

Вопрос:

Я хотел бы реализовать модульное тестирование в R путем сравнения списка объектов в среде, хранящейся в виде rds, с текущей средой. Я делюсь некоторыми кодами, которые я пытался реализовать, чтобы дать представление о том, чего бы я хотел

 
library(rlang)

a = FALSE
b = "a"
c = 2.3
d = 1:3


saveRDS(mget(ls()), file = "unit.rds")

# unit_t <- readRDS(file = "unit.rds")

env <- new_environment(readRDS(file = "unit.rds"))

identical(global_env(), current_env())

identical(new_environment(readRDS(file = "unit.rds")), global_env())

identical(mget(ls()), list(readRDS(file = "unit.rds")))

 

Заранее спасибо!

Комментарии:

1. На первый взгляд может показаться, что global_env() содержит env , но unit.rds не содержит, поэтому identical(new_environment(readRDS(file = "unit.rds")), global_env()) не может быть правдой. То же самое для identical(mget(ls()), list(readRDS(file = "unit.rds"))) , mget(ls()) будет включать env , что не является частью unit.rds .

2. Спасибо @GregorThomas, однако вы заметите, что комментирование этой строки по-прежнему приводит к ЛОЖНЫМ выводам

3. Достаточно ли сравнить, что имена объектов в каждой среде одинаковы, или вы, по сути, хотите сравнить сами объекты и вернуть значение true, только если каждая пара объектов идентична?

4. Я бы предпочел последнее. Я понял, что первое может быть достигнуто с помощью идентичного(mget(ls ()), как.list(readRDS(файл = «unit.rds»)))