Как написать тест для сюжета ggplot

У меня есть много функций, которые генерируют графики, как правило, с ggplot2. Прямо сейчас я создаю сюжет и проверяю базовые данные. Но я хотел бы знать, есть ли разумный способ проверить, что график содержит слои / параметры, которые я ожидаю, или что графические элементы соответствуют ожиданиям.

Например:

library(ggplot2)
library(scales) # for percent()
library(testthat)

df <- data.frame(
  Response = LETTERS[1:5],
  Proportion = c(0.1,0.2,0.1,0.2,0.4)
)

#' @export plot_fun
plot_fun <- function(df) {
  p1 <- ggplot(df, aes(Response, Proportion)) +
    geom_bar(stat='identity') + 
    scale_y_continuous(labels = percent)
return(p1)
}

test_that("Plot returns ggplot object",{
  p <- plot_fun(df)
  expect_is(p,"ggplot")
})

test_that("Plot uses correct data", {
  p <- plot_fun(df)
  expect_that(df, equals(p$data))

})

Вот где я застрял

test_that("Plot layers match expectations",{
  p <- plot_fun(df)
  expect_that(...,...)
})

test_that("Scale is labelled percent",{
  p <- plot_fun(df)
  expect_that(...,...)
})

Возможно, есть более прямой подход?

Ответы на вопрос(3)

Ваш ответ на вопрос