Testing reactivity: Simulated time
- testServer uses simulated time that you control, rather than the actual computer time.
server <- function(input, output, session){
rv <- reactiveValues(x = 0)
observe({
# Cause the observer to invalidate every 0.1 second
invalidateLater(100)
isolate(rv$x <- rv$x + 1)
})
}
testServer(server, {
expect_equal(rv$x, 0)
Sys.sleep(0.1)
expect_equal(rv$x, 1)
})
#> Error: rv$x (`actual`) not equal to 1 (`expected`).
#>
#> `actual`: 0
#> `expected`: 1