On 5/24/06, Holger Hoffstaette <[EMAIL PROTECTED]> wrote:
Hi James, I also looked at BeanFlow and like the basic idea very much, except for the String constants; I guess that's the price of simplicity.
FWIW thats recently been changed to use enums - which we now auto-check that match against valid method names in your class. There's been good feedback lately on improving this further; Eugene commented on annotating the enumerations to declare the transitions declaratively... http://jroller.com/page/eu?entry=coding_workflow_in_java_with and I've just got an email from Brian Goetz I'm digesting where he uses the enums to avoid reflection...
My first idea was, however, to use this for multithreaded test case construction! :) These are always a total bear as you probably know.
Totally! Actually doing distributed integration tests (in multiple threads or JVMs with remoting) is a real big use case for me - its been a constant itch. BTW have you seen the unit test case helpers... http://incubator.apache.org/servicemix/maven/servicemix-beanflow/apidocs/org/apache/servicemix/beanflow/util/package-summary.html You can create a concurrent test case with sync() methods quite easily now... https://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-beanflow/src/test/java/org/apache/servicemix/beanflow/util/ParallelBeanWithSyncs.java
Unfortunately it turns out that only very coarse-grained scenarios could be modeled; for some things I'd need much better control over the timers: exact-start, better scheduling precision, better exception handling/collecting/correlation via the thread group etc. Maybe you have more ideas in that direction?
Agreed. Note that it should be possible to write any kind of precise timer based Activity; the first class we've written, TimedActivity is pretty simple :). We've only just got the basics of BeanFlow going - I'm sure we can add everything you need pretty easily. One of the core features of BeanFlow is to be able to use regular object orientation design strategies (composition, aggregation, inheritence etc) to be able to build up very complex workflows from simple components. So I'm sure we can extend out to tackle the most challenging of orchestrations.
I have an (arguably untypical) test case that really cooks my noodle any time I look at it
LOL! :)
and if BeanFlow could be used to correctly model & execute that it could become an awesome basis for MT test modeling and execution. Drop me a line if you're interested.
I'm definitely interested! Ultimately I'd like to use BeanFlow to create concurrent/distributed integration/system test cases which are pretty complex so I think we're on the same page. -- James ------- http://radio.weblogs.com/0112098/