Редактировать:
Удалите это, это работает:
myfunction <- function(x) {
center <- mean(x)
cat("Mean =",center)
}
expect_that(
myfunction(c(1,2,3,7)),
prints_text("Mean = 3.25", fixed=TRUE))
то есть удаление пробела в cat()
и добавление fixed = TRUE
, потому что в противном случае любой результат с номером 3
, за которым следует что-либо, за которым следует 25
, пройдет тест.
оригинальный, но, возможно, неправильный ответ:
Это потому, что testthat::prints_text
ожидает регулярное выражение. Добавьте аргумент fixed = TRUE
(и \.
экранирует буквальную точку в регулярном выражении)
т.е.
prints_text("Mean = 3.25"), fixed = TRUE)
Окончательное редактирование:
Поскольку это может вызвать путаницу:
Это:
myfunction <- function(x) {
center <- mean(x)
cat("Mean =","3925")
}
Проходит этот тест (!):
library(testthat)
expect_that(
myfunction(c(1,2,3,7)),
prints_text("Mean = 3.25"))
Но не проходит это тест:
library(testthat)
expect_that(
myfunction(c(1,2,3,7)),
prints_text("Mean = 3.25", fixed=TRUE))