r - 提交按钮的 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()
})
}
)
解决方案
看起来更新按钮不适用于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()
推荐阅读
- r - tidyr::pivot_wider 中的 values_fill 参数不起作用
- python-3.x - Selenium 在循环中不单击元素
- c# - 如何让 TouchView nuget 在 Xamarin.Android 项目中与 Android 一起使用?
- c# - 使用 C# 在一个查询中运行多种不同类型的 SQL 查询
- php - 有什么方法可以禁止网站上的虚拟摄像头?
- php - Laravel 复选框不检查只是因为更改布局
- python-3.x - 如何使用基数 10 python 3 修复 int() 的无效文字
- javascript - JSX对外部元素的条件修改
- swift - 已确认访问远程用户的领域,但未执行 RealmCollectionChange 块 - 使用重现代码
- mysql - MySQL,在其他两个之间插入行