Comments (4)
I don't think we need this. assertThrows
returns the thrown error. We can assert whatever thing on it by using it. That pattern is more flexible than assertStrictThrows
as we can assert about any property (like .code
for DOMException or Node compat errors).
const err = assertThrows(() => someFunc());
assertEquals(err.message, "The error message");
assertEquals(err.code, "ERR_FOO_BAR");
from deno_std.
I don't think we need this.
assertThrows
returns the thrown error. We can assert whatever thing on it by using it. That pattern is more flexible thanassertStrictThrows
as we can assert about any property (like.code
for DOMException or Node compat errors).const err = assertThrows(() => someFunc()); assertEquals(err.message, "The error message"); assertEquals(err.code, "ERR_FOO_BAR");
That's easily fixed by returning the error at the end of these assertions.
The main issue these functions aim to fix is fully defining error properties in tests. This is because arguments are optional, and we only check that a message includes a string instead of equalling a string. Once test assertions are updated across the codebase, these functions ensure we check thrown/rejected errors strictly. Otherwise, parts of errors can fly under the radar within tests. I came up with this, but I'm happy to hear other solutions.
from deno_std.
That's easily fixed by returning the error at the end of these assertions.
I don't understand this. assertThrows
currently returns the error object. assertRejects
returns the promise of the error. If the user prefer to check the equality of the message, then the above example is what is recommended now. ref #2220 #2226
from deno_std.
We discussed this offline. Instead, we can create design documentation and then a tracking issue to adjust the codebase to that new convention.
from deno_std.
Related Issues (20)
- test(http): http test cases should pass when it's executed from `./http` directory
- suggestion: remove `getAvailablePort()` from `@std/net` HOT 2
- Check the usage of TextDecoder
- Rename the repository to `std` HOT 1
- question(collections): `intersect()` function name differ from Set method name HOT 1
- docs: more thoroughly document `expect.toThrow()` behavior HOT 2
- feat request: add a pluralize word function HOT 4
- feat request: expose publicly `capitalizeWord` (or similar) HOT 9
- http/file-server, media_types: new addition `application/mp4` to mime db overrides `video/mp4` and breaks some net players HOT 7
- isGlob and globToRegExp do not support windows paths HOT 4
- feat req: add enums for WebSocket status HOT 1
- feat req (html): add a validator for custom name elements ? HOT 4
- to-do: add doc check for JSDoc tags that aren't needed
- to-do(yaml): document different YAML schemas
- proposal: remove `examplePath` option from `@std/dotenv/load`
- proposal: remove `defaultPath` from `@std/dotenv/load`
- Performance: `levenshteinDistance` becomes extremely slow for large edit distances HOT 5
- The windows logic in std/path breaks in DNT HOT 2
- tracking: support iterables in `@std/collections` APIs
- to-do: review custom error classes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from deno_std.