首页 > 解决方案 > 提交按钮的 ExpectUpdate

问题描述

我正在检查我闪亮的应用程序是否运行正常。所以一种方法是使用expectUpdate。

app <- ShinyDriver$new(getwd())
expectUpdate(app, n = 5, add = 1, output = "sum", timeout = 3000)
Error: Updating ‘n’, ‘add’ did not update ‘sum’, or it is taking longer than 3000 ms.

下面的应用程序

shinyApp(
    fluidPage(
        numericInput("n", "Number to add", 5),
        actionButton("add", "Add"),
        verbatimTextOutput("sum", placeholder = TRUE)
    ),
    function(input, output, session) {
        nums <- numeric()

        c_sum <- eventReactive(input$add, {
            nums <<- c(nums, input$n)
            sum(nums)
        })

        output$sum <- renderText({
            c_sum()
        })




    }
)

标签: rshiny

解决方案


看起来更新按钮不适用于expectUpdate. 这是执行相同测试的另一种方法:

library(shinytest)
library(testthat)

app <- ShinyDriver$new(getwd())
old_sum <- app$getValue("sum")
app$setInputs(add = "click")
new_sum <- app$getValue("sum")
expect_false(old_sum == new_sum)
app$stop()

推荐阅读