13

我想使用“testthat”测试两个值不相等。我可以使用类似的东西来测试平等

expect_that(x, equals(y))

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

expect_false(x == y)

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

expect_that(x, not_equals(y))
4

1 回答 1

15

该函数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

您需要在isTRUE其中使用,因为all.equal如果其参数不相等,则返回一个字符串。

于 2012-08-24T16:49:30.420 回答