pkg中的expect_not_equal:testthat

ada*_*ich 9 r

我想使用'testthat' 测试两个值相等.我可以用类似的东西来测试平等

expect_that(x, equals(y))
Run Code Online (Sandbox Code Playgroud)

但是,如果我期望它们不相等怎么办?我可以用

expect_false(x == y)
Run Code Online (Sandbox Code Playgroud)

这是正确的方法,还是有类似的东西

expect_that(x, not_equals(y))
Run Code Online (Sandbox Code Playgroud)

And*_*rie 9

该函数testthat::equals()实际上是一个包装器all.equal.所以你可以像这样构建你的测试:

x <- 1:5
y <- 2:6
expect_false(isTRUE(all.equal(x, y)))
expect_false(isTRUE(all.equal(x+1, y)))
Error: isTRUE(all.equal(x + 1, y)) isn't false
Run Code Online (Sandbox Code Playgroud)

你需要isTRUE在那里使用,因为all.equal如果它的参数不相等则返回一个字符串.