2012-08-24 40 views
6

我想測試兩個值是而不是等於使用'testthat'。我可以使用像expect_not_equal in pkg:testthat

expect_that(x, equals(y)) 

測試平等但是,如果我期望他們不相等呢?我可以用

expect_false(x == y) 

這是正確的方式做到這一點還是有類似

expect_that(x, not_equals(y)) 

回答

5

功能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返回一個字符串,如果它的參數是不相等的。