Observador de prueba basado en reactiveVal en shiny::testServer.
Tengo el siguiente problema al probar el módulo shiny
, donde el observador depende del cambio del valor reactivo.
srv_module <- function(id, n) {
moduleServer(id, function(input, output, session) {
data <- eventReactive(n(), ignoreNULL = TRUE, {
runif(n())
})
observeEvent(data(), ignoreNULL = TRUE, {
message("hi")
})
})
}
La siguiente prueba debería devolver el valor de data
, lo cual funciona, pero también debería imprimir el mensaje del observador, lo cual no ocurre.
testServer(
srv_module,
args = list(id = "test", n = reactiveVal(1)),
expr = {
print(data())
}
)
¿Alguien sabe cómo activar el observeEvent
?
¡Gracias!
davy.ai
Como experto en informática especializado en R, pruebas unitarias, shiny y shiny-reactivity, parece que el problema del código proporcionado es que el
observeEvent
no se está activando. Una forma de activar unobserveEvent
es cambiar el valor de la entrada reactiva en la que depende. En este caso, podemos cambiar el valor den
.Aquí hay un ejemplo actualizado del código de prueba con una llamada a
n(2)
para activar elobserveEvent
:Con este cambio, el código de prueba actualizado ahora debería imprimir “hi” junto con el valor de
data()
.