My only comment would be to explicitly think about the naming of the Maven modules to reflect purpose. I believe it is important that developers coming to the camunda-bpm-testing project, are able to answer pretty fast the question "Why do I need this for? What problem is this going to solve?". The current proposed names for the new modules
camunda-bpm-junit
camunda-bpm-jbehave
camunda-bpm-fluent-assertions
camunda-bpm-fluent-api
camunda-bpm-needle
camunda-bpm-arquillian
indicate technologies and not purpose. I just ask myself whether other names would be better to guide the users of the libraries to the right place. If I'm a software developer building an process-driven app with Spring/CDI and I want to do unit test, integration testing and BDD: how do I do that with camunda BPM? Which libraries can I use and how do they help me?
My answer to this:
I understand what you mean. But some goals could be realized by different frameworks (e.g. BDD by Cucumber or JBehave; Unit Testing by JUnit or TestNG; …) and I think it should be clear in the Maven Artifact what framework is used as this has quite some impact (I need to write JUnit tests, JBehave fixtures, Arquillian deployments, …). So it cannot be easily hidden and I would prefer to expose it clearly in that case and do a proper documentation to guide people through the selection of the proper testing approach.
Opinions?
--
You received this message because you are subscribed to the Google Groups "camunda BPM platform internal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-d...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Any other oppinions? Especially some from the core team would be interessting to take into account.
At the oment Jan, Simon and Rafa tend to name it "unit" / "bdd"; I tend to name it "junit" / "jbehave". Hence democracy goes for the first ;-)
Does anybody knows other frameworks solving this naming problem? Maybe we can use Best Practices from there? I have bad Internet at the moment so I cannot google myself…
--
Hi Guys,
2 thoughts on this:
- If we provide integration with a particular framework (junit, arquillian, spring, camel, cdi, ejb, test-ng, cucumber, ….) we should name the corresponding module in a way that people can find it if they look for that integration
- Testing frameworks can be used for writing different “kinds” of tests. I for my part have written countless “integration tests” with junit and loads of unit tests based on arquillian. Saying that “junit = unit test” and “arquillian = integration” test is simply not true.
But that is just my opinion I don’t want to impose or anything.
Cheers,
Daniel Meyer
Hi Jan,
Besides naming the components, we should establish a set of test tools with concrete versions in a pom module and use these allover camunda.
Feel free to open a “where is camunda-bpm-bom???” discussion!
Cheers,
Daniel Meyer
Von: camunda...@googlegroups.com [mailto:camunda...@googlegroups.com] Im Auftrag von Jan Galinski
Gesendet: Sonntag, 8. September 2013 12:23
An: camunda...@googlegroups.com
Betreff: Re: camunda-bpm-testing
We should not aim for multi framework support. When we talk about unit testing, we think "junit", when we talk about mocking, its mockito, integration = arquillian and (after some thought and evaluation) Simon an I decided that (for Java projects in general and BPM projects in particular)
--
Exactly my oppionon as well (and believe me - I have done nothing to influence Daniel :-))
@Martin: holisticon dependency is a maven-central published pom-only project that combines correct versions of mockito/hamcrest/junit.
@Martin: could you explain the camunda-bpm-mockito artifact? What should it contain? We use needle for mocking/injecting dependencies with mockito as a mock provider behind it. I would expect that there is a general camunda-bpm-testing-support project contaning small helpers for mockito, unit etc... Is there so much mockito specific code that it is worth to create an own project for it?
We already started the JBehave part (look on the branch include_bdd) and named it camunda-bpm-bdd. It is not a problem to rename it to camunda-bpm-jbehave, since it has a direct dependency to the JBehave framework.So I'm fine with naming propsed by Martin.
What we would get is a parent camunda-bpm-testing with modules:camunda-bpm-needlecamunda-bpm-fest-assertionscamunda-bpm-fluent-api (at some point moved out of testing, if depends only on the engine)camunda-bpm-jbehavecamunda-bpm-arcquillian
camunda-bpm-testing-examples (explained below)
camunda-bpm-testing-support
I think it is a good idea to have some common examples, all this projects are testing. So in order to show some specific test strategy or feature we should not create an isolated process example, but rely on the common example processes. It would make the knowledge tranfser and eductaion easier, since people have to learn the processes under test only once.
--
You received this message because you are subscribed to the Google Groups "camunda BPM platform internal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-d...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Great discussion guys. I am really happy with the results so far - thanks for pushing this forward!
Let's see hwta testing-core will contain - the idea was to keep it pretty independant of JUnityes (as we might not need it for Arquillian and the like and it avoids unwanted dependencies) - but from my side it is not a must. Best we get something working the best way we envision at the moment - I fear over engineering more that having something mingled together at this stage.
For the testing examples I would like to move them to https://github.com/camunda/camunda-bpm-examples later on or show testing variaties in the various example we already have. But I think it is a good idea to collect it there first and maybe later on move it to a proper location. Or maybe even keep it there if it proves to be the best location.
So it will be this list - correct?
camunda-bpm-testing-core
camunda-bpm-junit
camunda-bpm-needle
camunda-bpm-fest-assertions
camunda-bpm-fluent-api
camunda-bpm-jbehave
camunda-bpm-arquillian
camunda-bpm-testing-examples
+1!
Cheers
Bernd
Mockito utils could go to core for the moment I think (as it maybe adds to much overhead to add an own module for that) - or does this impose a mockito runtime dependency? Or the needle module if it is "only" used there?
I think all the helpers you mention could go into core (or JUnit if it exists).
Von: camunda...@googlegroups.com [mailto:camunda...@googlegroups.com] Im Auftrag von Jan Galinski
Gesendet: Montag, 9. September 2013 17:20
An: camunda...@googlegroups.com
Betreff: Re: camunda-bpm-testing
+1 from me too (finally had 5 minutes on my machine to read and answer).
--
--
Jan wrote: "I think we will have some Mockito utile (doAnswer/doReturn for Delegates for example). Will I put these in camunda-bpm-mockito, -junit or -core?"
@Jan: do you mean Mockito utils to test ServiceTasks implemented with Java delegates?!
Yes, I do. Its not much though, just a "setVariable" tool. https://github.com/camunda/camunda-bpm-testing/blob/master/camunda-bpm-needle/src/main/java/org/camunda/bpm/engine/test/SetVariablesOnDelegateExecutionAnswer.java
Funnily enough, while exploring today how to implement the camunda BPM --> Apache Camel integration with a Java Delegate I found myself with the need of… testing it! :-) Do you have already that Mockito code? :-D
In any case, once the Apache Camel integration is in better shape, I will come back to the testing support for end-to-end integration tests for camunda BPM + Apache Camel.
Looking forward to see you all at the BPMCon!
Me too. I think you gonna love the needle approach.
Jan
Jan wrote: "I think we will have some Mockito utile (doAnswer/doReturn for Delegates for example). Will I put these in camunda-bpm-mockito, -junit or -core?"
@Jan: do you mean Mockito utils to test ServiceTasks implemented with Java delegates?!�
Yes, I do. Its not much though, just a "setVariable" tool. https://github.com/camunda/camunda-bpm-testing/blob/master/camunda-bpm-needle/src/main/java/org/camunda/bpm/engine/test/SetVariablesOnDelegateExecutionAnswer.java
Funnily enough, while exploring today how to implement the camunda BPM --> Apache Camel integration with a Java Delegate I found myself with the need of� testing it! :-) Do you have already that Mockito code? :-D�
In any case, once the Apache Camel integration is in better shape, I will come back to the testing support for end-to-end integration tests for camunda BPM + Apache Camel.
Looking forward to see you all at the BPMCon!
Me too. I think you gonna love the needle approach.�
Jan
--
You received this message because you are subscribed to the Google Groups "camunda BPM platform internal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-d...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Cool - thanks for all the extra time you put in it. Looks already really good! I quickly adjusted the dependency in needle from camunda-bpm-fluent-assertions to camunda-bpm-fest-assertions. Now it builds perfectly. Hope I find time to have a deeper look later today.
@Christian: Would be lovely if you can help out with the jbehave dependency.
Von: camunda...@googlegroups.com [mailto:camunda...@googlegroups.com] Im Auftrag von Simon Zambrovski
Gesendet: Dienstag, 10. September 2013 00:50
An: camunda...@googlegroups.com; c...@camunda.com
Betreff: Re: camunda-bpm-testing
Hi,
I just pushed the results to the master. I commented out the camunda-bpm-jbehave module, since we need the snapshot of jbehave to be put into camunda repository.
I hope Christian can help us with it.
Kind regards,
Simoni
Am 10.09.2013 00:08, schrieb Jan Galinski:
Jan wrote: "I think we will have some Mockito utile (doAnswer/doReturn for Delegates for example). Will I put these in camunda-bpm-mockito, -junit or -core?"
@Jan: do you mean Mockito utils to test ServiceTasks implemented with Java delegates?!
Yes, I do. Its not much though, just a "setVariable" tool. https://github.com/camunda/camunda-bpm-testing/blob/master/camunda-bpm-needle/src/main/java/org/camunda/bpm/engine/test/SetVariablesOnDelegateExecutionAnswer.java
Funnily enough, while exploring today how to implement the camunda BPM --> Apache Camel integration with a Java Delegate I found myself with the need of… testing it! :-) Do you have already that Mockito code? :-D
In any case, once the Apache Camel integration is in better shape, I will come back to the testing support for end-to-end integration tests for camunda BPM + Apache Camel.
Looking forward to see you all at the BPMCon!
Me too. I think you gonna love the needle approach.
Jan
--
You received this message because you are subscribed to the Google Groups "camunda BPM platform internal" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-d...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--