I remember writing a small .NET test library for that exact problem - You could pass in a lambda with a complex condition, and it evaluated every piece of the expression separately and pretty printed what part of the condition failed.
So essentially you could write
Assert(()=>width>0 && x + width < screenWidth)
And you would get: Assertion failed:
x is 1500
width is 600
screenWidth is 1920
It used Expression to do the magic. Amazing debug messages. No moralizing required.This was a huge boon for us as it was a legacy codebase and we ran tens of thousands of automated tests and it was really difficult to figure out why they failed.
Is there something like this available for javascript?
I'm not aware of any related to testing, but perhaps you could use something like this in tandem with some tests to pull it off?