gpt4 book ai didi

r - 使用 Shinytest 测试可编辑的 DT

转载 作者:行者123 更新时间:2023-12-03 21:00:36 25 4
gpt4 key购买 nike

我正在尝试为我一直在开发的 Shiny 应用程序创建单元测试,但无法弄清楚如何为可编辑的 DT 表输入值。

示例应用程序:

library(shiny)
library(DT)

ui <- fluidPage(
DTOutput("table"),
textOutput("mean")
)

server <- function(input, output) {
tableUpdate <- reactiveVal(0)

table <- data.frame(A = 1:5, B = 6:10, C = 11:15)

output$table <- renderDT({table},
options = list(paging = FALSE, dom = 't'),
selection = 'none',
server = FALSE,
editable = list(target = 'row')
)

observeEvent(input$table_cell_edit, {
table <<- editData(table, input$table_cell_edit)
tableUpdate(tableUpdate() + 1)
})

output$mean <- renderText({
tableUpdate()
paste(mean(table$A), mean(table$B), mean(table$C))
})
}

shinyApp(ui, server)

示例测试:
library(shinytest)

app <- ShinyDriver$new(".")
app$setInputs(table_cell_clicked = list(row = 2, col = 2, value = 7), allowInputNoBinding_ = TRUE)
app$setInputs(table_cell_edit = data.frame(row = 2, col = 0:3, value = "1"),
allowInputNoBinding_ = TRUE, priority_ = "event", wait_ = FALSE, values_ = FALSE)
app$takeScreenshot()
app$stop()
rm(app)

当我记录测试时,我主要保留了它的结果,但是我更正了 table_cell_edit 和 table_cell_clicked 的 setInputs 值(它们作为向量出现)。

这给出了错误: Error in sd_getAllValues(self, private, input, output, export) :
Unable to fetch all values from server. Is target app running with options(shiny.testmode=TRUE?)

在测试模式下运行并不能解决问题。

最佳答案

在遇到同样的问题时,我设法解决了你的问题。
错误就在这里(当您尝试更新 react 值时):
tableUpdate(tableUpdate() + 1)
代替 ....
表更新(表)
请在下面找到更新的完整代码。

library(shiny)
library(DT)

ui <- fluidPage(
DTOutput("tabled"),
textOutput("mean")
)

server <- function(input, output) {
tableUpdate <- reactiveVal(NULL)
table <- data.frame(A = 1:5, B = 6:10, C = 11:15)
output$tabled <- renderDT({table},
options = list(paging = FALSE, dom = 't'),
selection = 'none',
server = TRUE,
editable = 'row')
observeEvent(input$tabled_cell_edit, {
table<<- editData(table, input$tabled_cell_edit,'tabled')
tableUpdate(table)
a<-mean(table$A)
b<-mean(table$B)
c<-mean(table$C)
output$mean <- renderText(paste(a,b,c))
})
}
shinyApp(ui, server)

关于r - 使用 Shinytest 测试可编辑的 DT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com