-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Basic macro support. #832
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
Merged
Merged
Basic macro support. #832
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f779999
Basic macro support.
jamestalmage 8e6c294
fix readme indentation
jamestalmage a465fb4
spread arguments
jamestalmage 06b8491
Allow arrays of macros
jamestalmage 51bed36
pass providedTitle as first argument to title function.
jamestalmage 20e46f8
improve docs
jamestalmage File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -524,6 +524,33 @@ test.only.serial(...); | |
|
||
This means you can temporarily add `.skip` or `.only` at the end of a test or hook definition without having to make any other changes. | ||
|
||
### Test macros | ||
|
||
Additional arguments after the test function will be passed as an array to the test function. This is useful for creating reusable test macros. | ||
|
||
```js | ||
function macro(t, [input, expected]) { | ||
t.is(eval(input), expected); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Indentation should be a tab 😉 |
||
} | ||
|
||
test('2 + 2 === 4', macro, '2 + 2', 4); | ||
test('2 * 3 === 6', macro, '2 * 3', 6); | ||
``` | ||
|
||
You can build the test title programatically by attaching a `title` function to the macro: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. programmatically |
||
|
||
```js | ||
function macro(t, [input, expected]) { | ||
t.is(eval(input), expected); | ||
} | ||
|
||
macro.title = ([input, expected]) => `${input} === ${expected}`; | ||
|
||
test(macro, '2 + 2', 4); | ||
test(macro, '2 * 3', 6); | ||
``` | ||
|
||
|
||
### Custom assertions | ||
|
||
You can use any assertion library instead of or in addition to the built-in one, provided it throws exceptions when the assertion fails. | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Wouldn't it rather be "creating reusable tests"?
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 may be a cleaner way of saying it, but I'm trying to introduce the term. Maybe "reusable macros", but I think it's good as is.