mirror of
https://github.com/denoland/deno.git
synced 2025-01-21 21:50:00 -05:00
docs(testing): Add custom test example (#9791)
This commit is contained in:
parent
b2a1ad0611
commit
0ae079fe50
1 changed files with 30 additions and 0 deletions
|
@ -231,3 +231,33 @@ Deno.test("Test Assert Equal Fail Custom Message", () => {
|
|||
assertEquals(1, 2, "Values Don't Match!");
|
||||
});
|
||||
```
|
||||
|
||||
### Custom Tests
|
||||
|
||||
While Deno comes with powerful
|
||||
[assertions modules](https://deno.land/std@$STD_VERSION/testing/asserts.ts) but
|
||||
there is always something specific to the project you can add. Creating
|
||||
`custom assertion function` can improve readability and reduce the amount of
|
||||
code.
|
||||
|
||||
```js
|
||||
function assertPowerOf(actual: number, expected: number, msg?: string): void {
|
||||
let received = actual;
|
||||
while (received % expected === 0) received = received / expected;
|
||||
if (received !== 1) {
|
||||
if (!msg) {
|
||||
msg = `actual: "${actual}" expected to be a power of : "${expected}"`;
|
||||
}
|
||||
throw new AssertionError(msg);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Use this matcher in your code like this:
|
||||
|
||||
```js
|
||||
Deno.test("Test Assert PowerOf", () => {
|
||||
assertPowerOf(8, 2);
|
||||
assertPowerOf(11, 4);
|
||||
});
|
||||
```
|
||||
|
|
Loading…
Add table
Reference in a new issue