| testServer {shiny} | R Documentation |
A way to test the reactive interactions in Shiny applications. Reactive interactions are defined in the server function of applications and in modules.
testServer(app = NULL, expr, args = list(), session = MockShinySession$new())
app |
The path to an application or module to test. In addition to
paths, applications may be represented by any object suitable for coercion
to an |
expr |
Test code containing expectations. The test expression will run
in the server function environment, meaning that the parameters of the
server function (e.g. |
args |
Additional arguments to pass to the module function. If |
session |
The |
server <- function(id, multiplier = 2, prefix = "I am ") {
moduleServer(id, function(input, output, session) {
myreactive <- reactive({
input$x * multiplier
})
output$txt <- renderText({
paste0(prefix, myreactive())
})
})
}
testServer(server, args = list(multiplier = 2), {
session$setInputs(x = 1)
# You're also free to use third-party
# testing packages like testthat:
# expect_equal(myreactive(), 2)
stopifnot(myreactive() == 2)
stopifnot(output$txt == "I am 2")
session$setInputs(x = 2)
stopifnot(myreactive() == 4)
stopifnot(output$txt == "I am 4")
# Any additional arguments, below, are passed along to the module.
})