我想使用'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)
该函数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如果它的参数不相等则返回一个字符串.