The aim of shinytesters is to make it easier to test
update functions in Shiny packages when using
testthat::testServer.
To install the latest development version of
shinytesters, install from GitHub:
remotes::install_github("ashbaldry/shinytesters")Add use_shiny_testers() at the start of any test that is
using shiny::testServer to add inputs and other relevant
arguments to the test session inputs.
test_that("When clicking apply button, checkbox becomes checked", {
use_shiny_testers()
example_server_fn <- function(input, output, session) {
observeEvent(input$apply_btn, {
updateCheckboxInput(
inputId = "result",
label = "New Label",
value = TRUE
)
})
}
shiny::testServer(
app = example_server_fn,
expr = {
session$setInputs(apply_btn = 1L)
expect_identical(input$result, TRUE)
expect_identical(input$result.label, "New Label")
}
)
})