测试模块化R Shiny(golem)仪表板

大卫

我一直在探索(并热爱)golem软件包,用于使用R Shiny开发模块化仪表板。但是我一直在努力学习如何测试模块化仪表板。

例如,在下面的repex中,我如何测试导入模块中的input $ n_rows设置为15,显示模块中的输出包含15行?

非常感谢您对此提供的支持!


library(shiny)
library(reactable)
library(dplyr)

# Import module UI
mod_import_ui <- function(id){
  
  ns <- NS(id)
  
  fluidRow(
    # Allow the user to select the number of rows to view
    numericInput(ns("n_rows"), 
                 "Select number of observations",
                 value = 10)
    
  )
}

# Import module Server
mod_import_server <- function(id){
  
  moduleServer(
    id,
    function(input, output, session){
      
      data <- reactive({
        
        # Sample the requested number of rows from mtcars and return this to the application server
        mtcars %>%
          slice_sample(n = input$n_rows)
        # [....] # Some complex formatting and transformations
        
      })
      
      return(data)
      
      
      
    }
  )}

# Display module UI
mod_display_ui <- function(id){
  
  ns <- NS(id)
  
  fluidRow(
    
    reactableOutput(ns("table"))
    
  )
}

# Display module Server
mod_display_server <- function(id, data_in){
  
  moduleServer(
    id,
    function(input, output, session){
      
      # [....] # Some more transformations and merging with data from other modules
      
      output$table <- renderReactable(reactable(data_in()))
      
    }
  )}


app_ui <- function(request) { 
  
  tagList(
  
    mod_import_ui("import_1"),
    mod_display_ui("display_1")

  )
  
  }


app_server <- function(input, output, session) { 
  
  data_in <- mod_import_server("import_1")
  mod_display_server("display_1", data_in)
  
}

shinyApp(ui = app_ui, server = app_server)


塞巴斯蒂安·罗切特(Sebastien Rochette)

我建议将应用程序的核心与用户界面分开。

{golem}框架允许在R包中构建应用程序,这意味着您可以使用从包构建到文档编制和测试代码的所有工具。
如果您按照engineering-shiny.org/中的指南进行操作,则会看到我们建议您从“服务器”部分中提取所有R代码以在小插图中对其进行测试,并将其转换为常规函数,以便可以对其进行测试。通常与R包一起使用。
因此,您的ShinyApp仅调用已记录和测试的内部函数。使用这种方法,您可以测试应用程序中可能发生的不同方案的输出。在开发的后续步骤中,无论您在应用程序中进行了什么更改,都可以在静态脚本中尝试不同的输入参数并验证输出。

这本书提供了很多建议。如果我必须将它们总结为一个工作流程,则为:

  1. 直接在Rmd中构建必要的代码。这样,您无需进行所有必要的单击即可测试操作。我们称其为“ Rmd first”方法:https ://rtask.thinkr.fr/when-development-starts-with-documentation/
  2. 将此代码分解为R函数,以尽可能少地将它们放入Shiny应用程序本身。
  3. 在没有服务器(或太多)的情况下创建UI部件,只是为了查看总体外观
  4. 在应用程序的适当位置包含您的功能。
  5. 加强密码。可复制的示例,单元测试,文档,代码版本控制...(与代码并行完成时,此步骤会更好)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用R Shiny仪表板直接链接到tabItem

来自分类Dev

在 Shiny 仪表板中包含 .R 文件

来自分类Dev

R Shiny仪表板加载选项卡仅一次

来自分类Dev

R Shiny仪表板与基础数据相比显示不正确的日期时间

来自分类Dev

明显不正确地使用 R Shiny 中的 renderUI 进行交互式仪表板

来自分类Dev

GrayLog2:如何外部化仪表板?

来自分类Dev

R闪亮仪表板中的动态重复条件面板

来自分类Dev

使用R刮擦网站的Power BI仪表板

来自分类Dev

使用R搜寻网站的Tableau仪表板

来自分类Dev

如何更新Google可视化仪表板的基础google数据表并刷新仪表板视图?

来自分类Dev

模块化R Shiny App中的updateTabItem调用后的updatePickerInput

来自分类Dev

ZF2仪表板-需要从多个模块添加视图

来自分类Dev

从SilverStripe仪表板模块中删除不需要的面板

来自分类Dev

执行基于Maven的端到端测试并在Tekton仪表板中显示结果

来自分类Dev

WordPress:移动的WordPress仪表板仍指向测试服务器

来自分类Dev

如何将负载测试结果添加到 VSTS 中的仪表板?

来自分类Dev

Django模块化测试

来自分类Dev

Django模块化测试

来自分类Dev

非R用户的Interactive R笔记本/仪表板

来自分类Dev

如何获取Leaflet for R使用闪亮仪表板高度的100%

来自分类Dev

如何在闪亮的仪表板中使用R包“ formattable”?

来自分类Dev

R-部署在Shinyapps.io中的闪亮应用程序中的仪表板日期

来自分类Dev

R闪亮的单个图来填充整个仪表板页面

来自分类Dev

将具有R脚本的Tableau仪表板发布到服务器

来自分类Dev

R闪亮的仪表板如何使用动画图标?

来自分类Dev

登录到闪亮的仪表板 R 后如何不出现空侧

来自分类Dev

带有子项的 R 闪亮仪表板表菜单项

来自分类Dev

在仪表板 Shiny 中显示文件内容

来自分类Dev

在 Shiny 仪表板上对齐三个元素

Related 相关文章

  1. 1

    使用R Shiny仪表板直接链接到tabItem

  2. 2

    在 Shiny 仪表板中包含 .R 文件

  3. 3

    R Shiny仪表板加载选项卡仅一次

  4. 4

    R Shiny仪表板与基础数据相比显示不正确的日期时间

  5. 5

    明显不正确地使用 R Shiny 中的 renderUI 进行交互式仪表板

  6. 6

    GrayLog2:如何外部化仪表板?

  7. 7

    R闪亮仪表板中的动态重复条件面板

  8. 8

    使用R刮擦网站的Power BI仪表板

  9. 9

    使用R搜寻网站的Tableau仪表板

  10. 10

    如何更新Google可视化仪表板的基础google数据表并刷新仪表板视图?

  11. 11

    模块化R Shiny App中的updateTabItem调用后的updatePickerInput

  12. 12

    ZF2仪表板-需要从多个模块添加视图

  13. 13

    从SilverStripe仪表板模块中删除不需要的面板

  14. 14

    执行基于Maven的端到端测试并在Tekton仪表板中显示结果

  15. 15

    WordPress:移动的WordPress仪表板仍指向测试服务器

  16. 16

    如何将负载测试结果添加到 VSTS 中的仪表板?

  17. 17

    Django模块化测试

  18. 18

    Django模块化测试

  19. 19

    非R用户的Interactive R笔记本/仪表板

  20. 20

    如何获取Leaflet for R使用闪亮仪表板高度的100%

  21. 21

    如何在闪亮的仪表板中使用R包“ formattable”?

  22. 22

    R-部署在Shinyapps.io中的闪亮应用程序中的仪表板日期

  23. 23

    R闪亮的单个图来填充整个仪表板页面

  24. 24

    将具有R脚本的Tableau仪表板发布到服务器

  25. 25

    R闪亮的仪表板如何使用动画图标?

  26. 26

    登录到闪亮的仪表板 R 后如何不出现空侧

  27. 27

    带有子项的 R 闪亮仪表板表菜单项

  28. 28

    在仪表板 Shiny 中显示文件内容

  29. 29

    在 Shiny 仪表板上对齐三个元素

热门标签

归档