使用附加变量测试闪亮模块

testing shiny modules with additional variables

我一直在玩闪亮的模块,终于得到了一些零碎的东西。但是,我完全被测试单个模块的问题所困扰。

我通常做的是将每个模块都变成一个小应用程序来测试它是如何工作的。这个特定的模块需要额外的变量,但我似乎无法像往常一样将一些测试变量插入到测试应用程序中。不幸的是,这失败了。

是否有处理此问题的标准方法?

非常感谢

histogram_ui <- function(id) {
  tagList(
    plotOutput(NS(id, "hist"))
  )
}

histogram_server <- function(id, var, bin) {
  moduleServer(id, function(input, output, session) {
    
    data <- reactive(mtcars[[var()]])
    #debug
    observeEvent(var(), {
      print(var())
    })

    output$hist <- renderPlot({
      hist(data(), breaks = bin(), main = var())
    })
  })
}

#testing----
ui_t <- fluidPage(
  histogram_ui("test")
)

server_t <- function(input, output, session) {
  histogram_server("test", var = "mpg", bin = 10)
}

options(shiny.reactlog=TRUE) #ctrl+F3 to bring up
shinyApp(ui_t, server_t)

试试这个

histogram_ui <- function(id) {
  tagList(
    plotOutput(NS(id, "hist"))
  )
}

histogram_server <- function(id, var, bin) {
  moduleServer(id, function(input, output, session) {
 
    observeEvent(c(var(), bin()), {
      print(var())
    })
    
    output$hist <- renderPlot({
      hist(mtcars[[var()]], breaks = bin(), main = var())
    })
  })
}

#testing----
ui_t <- fluidPage(
  selectInput("myvar","Choose",choices = colnames(mtcars)),
  sliderInput("bins","Number of Bins", min=1, max=10, value=5),
  histogram_ui("test")
)

server_t <- function(input, output, session) {
  histogram_server("test", var = reactive(input$myvar), bin = reactive(input$bins))
}

options(shiny.reactlog=TRUE) #ctrl+F3 to bring up
shinyApp(ui_t, server_t)