Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
September 02, 2013 specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
specd is a DSL library allowing you to write more expressive unit tests. It is inspired by projects like specs2 and ScalaTest from the Scala world. Example: unittest { describe("a string") .should("have a length property", "foo".length.must.equal(3)); } Features: * DSL for expressing unit tests as specifications * Verify with "must" instead of assert * Report successful / failed tests using green / red paradigm Available as a dub dependency ("specd") or from https://github.com/jostly/specd Comments and suggestions for improvement are welcome! //Johan |
September 03, 2013 Re: specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
Posted in reply to jostly | On 2013-09-02 21:03, jostly wrote: > specd is a DSL library allowing you to write more expressive unit tests. > It is inspired by projects like specs2 and ScalaTest from the Scala world. > > Example: > > unittest { > describe("a string") > .should("have a length property", "foo".length.must.equal(3)); > } > > Features: > * DSL for expressing unit tests as specifications > * Verify with "must" instead of assert > * Report successful / failed tests using green / red paradigm > > Available as a dub dependency ("specd") or from > https://github.com/jostly/specd > > Comments and suggestions for improvement are welcome! I've been working on something similar myself. https://github.com/jacob-carlborg/dspec I'm working on a new syntax using UDA's, shown here: https://github.com/jacob-carlborg/phobos/blob/serialization/std/serialization/tests/array.d -- /Jacob Carlborg |
September 04, 2013 Re: specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
Posted in reply to jostly | It would be nice to have something like result.must.not.be!">"(42); So, have a look at 'assertOp': http://d.puremagic.com/issues/show_bug.cgi?id=4653 How can a user of your code add matchers, for example, to check for elements or attributes in XML? (Without having to change your code.) The hidden 'MatchStatement' makes the code easy to use but seems to make it hard to extend. You could add a second ('matcher') parameter to 'must', but then you have to switch from '.' to '('...')': result.must(haveTag("root")); By the way: Does the color output work on Windows? Here is what I do to color the unit-test results: https://github.com/linkrope/dunit/blob/master/dunit/color.d |
September 04, 2013 Re: specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Tuesday, 3 September 2013 at 06:36:20 UTC, Jacob Carlborg wrote: > On 2013-09-02 21:03, jostly wrote: >> specd is a DSL library allowing you to write more expressive unit tests. >> It is inspired by projects like specs2 and ScalaTest from the Scala world. >> >> Example: >> >> unittest { >> describe("a string") >> .should("have a length property", "foo".length.must.equal(3)); >> } >> >> Features: >> * DSL for expressing unit tests as specifications >> * Verify with "must" instead of assert >> * Report successful / failed tests using green / red paradigm >> >> Available as a dub dependency ("specd") or from >> https://github.com/jostly/specd >> >> Comments and suggestions for improvement are welcome! > > I've been working on something similar myself. > > https://github.com/jacob-carlborg/dspec Narrowly avoided nameclash there. :) Good to see others thinking along the same lines. > I'm working on a new syntax using UDA's, shown here: > > https://github.com/jacob-carlborg/phobos/blob/serialization/std/serialization/tests/array.d Looks interesting. I hadn't heard of the UDA's before, they seem quite powerful from a brief glance. |
September 04, 2013 Re: specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
Posted in reply to linkrope | On Wednesday, 4 September 2013 at 11:06:45 UTC, linkrope wrote:
> It would be nice to have something like
>
> result.must.not.be!">"(42);
>
> So, have a look at 'assertOp':
> http://d.puremagic.com/issues/show_bug.cgi?id=4653
>
> How can a user of your code add matchers, for example, to check for elements or attributes in XML? (Without having to change your code.) The hidden 'MatchStatement' makes the code easy to use but seems to make it hard to extend. You could add a second ('matcher') parameter to 'must', but then you have to switch from '.' to '('...')':
>
> result.must(haveTag("root"));
>
> By the way: Does the color output work on Windows?
> Here is what I do to color the unit-test results:
> https://github.com/linkrope/dunit/blob/master/dunit/color.d
Thanks for the feedback and the pointers - I think they're all good ideas. I'll look into making the necessary adjustments.
|
September 04, 2013 Re: specd - write more expressive unit tests | ||||
---|---|---|---|---|
| ||||
Posted in reply to jostly | On 2013-09-04 19:38, jostly wrote: > Looks interesting. I hadn't heard of the UDA's before, they seem quite > powerful from a brief glance. Very simple but very powerful. It's basically way to tag symbols with values/types. -- /Jacob Carlborg |
Copyright © 1999-2021 by the D Language Foundation