From: "ara.t.howard" Date: 2009-03-29T13:27:08+09:00 Subject: Re: testy.rb - ruby testing that's mad at the world On Mar 28, 2009, at 5:33 PM, Yossef Mendelssohn wrote: > On Mar 28, 6:01 pm, "ara.t.howard" wrote: >> returning unexpected results: >> failure: >> expect: >> a: 42 >> b: forty-two >> actual: >> a: 42 >> b: 42.0 > > You call this beautiful, but I don't understand it. This says that 'a' > is okay and 'b' isn't, right? Maybe it's not so much that I don't > understand it as I don't really like it. it's a valid complaint. but compare it to what you'll get in most frameworks and consider that, by beautiful, i mean that a YAML.load can slurp the entire set of expect vs actual. i considered a delta style format: diff a: expect: 42 actual: 42.0 b: expect: 43 actual: 43.0 but it seems very hard to reconstruct for downstream filters. i'm open to suggestion on format though. requirements are . readable by humans . easily parsed by computers basically that means some yaml format. honestly open to suggestion here... > > > Frankly, I find it rather ironic that you're writing a testing > framework and seemingly advocating BDD. Maybe things have changed > mightily in these heady recent times. > i personally don't think so, i think the community took a wrong turn, from wikipedia (http://en.wikipedia.org/wiki/ Behavior_Driven_Development) " The practices of BDD include: * Involving stakeholders in the process through outside-in software development * Using examples to describe the behavior of the application, or of units of code * Automating those examples to provide quick feedback and regression testing * In software tests, using 'should' to help clarify responsibility and allow the software's functionality to be questioned * Test use 'ensure' to differentiate outcomes in the scope of the code in question from side-effects of other elements of code. * Using mocks to stand-in for modules of code which have not yet been written i have major issues with points two and three wrst to most ruby testing frameworks. one of the main points of testy is to combine examples with testing. rspec and all the others do not serve as examples unless you are a ruby master. that is to say they introduce too many additions to the code that's supposed to be an example to really preserve it's 'exampleness'. and of course the output is utterly useless to normal humans. if a framework provides 1000 asset_xxxxxxxx methods ad nausea then the point of the code - it's level of example-good-ness - is lost to mere mortals > I like some of what you have as points, like the output should be > readable ("beautiful" is a little subjective), and of course that > tests should improve your code. The framework points, about the > framework not being huge and not contributing to brittle tests are > good, and the exit status is interesting. Personally, I live with a > couple of methods (as few as possible) on Object and Kernel so writing > the tests doesn't make me want to kill myself. > > I used RSpec for a long time, and still do with some projects. I've > switched bacon for my personal projects, and I love it. As for > mocking, which is necessary in some cases if you want to test without > turning into a serial killer, mocha with RSpec, facon with bacon. this will summarize where my thoughts are on that cfp:~/redfission > find vendor/gems/{faker,mocha,thoughtbot}* -type f| xargs -n1 cat|wc -l 24255 cfp:~/redfission > find app -type f|xargs -n1 cat|wc -l 1828 rspec and co might be fine but seriously, the above is insane right? kind regards. a @ http://codeforpeople.com/ -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama