Como escrever um teste para um gráfico ggplot

Eu tenho muitas funções que geram gráficos, normalmente com o ggplot2. No momento, estou gerando o gráfico e testando os dados subjacentes. Mas eu gostaria de saber se existe uma maneira razoável de testar se o gráfico contém as camadas / opções que eu espero ou se os elementos gráficos correspondem às expectativas.

Por exemplo:

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))

})

Aqui é onde eu estou preso

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

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

Talvez haja uma abordagem mais direta?

questionAnswers(3)

yourAnswerToTheQuestion