-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Start using testthat 3e #910
Conversation
We have a bunch of migrations to do here.. |
Finished the first pass here. Notes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine so far
tests/testthat/test-cache.R
Outdated
|
||
expect_equal(e1, e2) | ||
) | ||
expect_identical(as.list(e1), as.list(e2)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you use this approach, I think you need all.names = TRUE
to verify the property implied by the test title.
OTOH I'm not sure what "non-hidden" means as I would have expected hidden to imply a variable starting with .
, but that doesn't appear in the test.
Additionally, I'd use expect_equal()
here because expect_identical()
just implies exact numerical comparisons, which I don't think is important here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's not my reading of the docs (?expect_identical):
expect_identical() is the baseline; expect_equal() relaxes the test to ignore small numeric differences.
i.e., only use expect_equal to ignore numerical differences
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm. I guess it missing another sentence that says something like: "Since in most cases tiny numeric differences aren't important, we recommend using expect_equal()
."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙈 our internal policy encourages expect_identical()
now and we've basically switched all the expect_equal()
tests already, except where ignore*=
or tolerance=
are needed. I have come to quite like it TBH. It encourages stronger tests.
Hmm @AshesITR the new helper function uses That means we need a Suggests for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work, thanks!
No description provided.