[xwiki-devs] Some difficulties with unit testing ...
Hello, Seems I did not understand everything about how to write unit tests ... Here's my problem : I want to test a class MA, a component, that has the following code (excerpt) : My test class MATest contains : Here I'm looking up the Execution in order to set expectations on it for the initialize to pass. Problem is that I'm still getting this at test execution : It seems that my initialize() method is called at lookup(), so how could I set-up the expectations before they're actually exercised ? : Thanks for help, Jeremie -- View this message in context: http://xwiki.475771.n2.nabble.com/Some-difficulties-with-unit-testing-tp7490... Sent from the XWiki- Dev mailing list archive at Nabble.com.
Hello community, No idea on this problem ? I'm pretty sure it's stupid but I'm stuck ... Teasing Motivation argument : it will soon slow down my progress on the mail archive applicaiton ... ;) Thanks, Jeremie -- View this message in context: http://xwiki.475771.n2.nabble.com/Some-difficulties-with-unit-testing-tp7490... Sent from the XWiki- Dev mailing list archive at Nabble.com.
On May 3, 2012, at 2:45 PM, jerem wrote:
Hello community,
No idea on this problem ?
What problem? I can't see any in your mail… Thanks -Vincent PS: I already asked you in the past to not remove initial mail context when you reply as otherwise it's impossible to follow you.
I'm pretty sure it's stupid but I'm stuck ... Teasing Motivation argument : it will soon slow down my progress on the mail archive applicaiton ... ;)
Thanks, Jeremie
Hi Jerem, Are you using nabble.com directly to send/reply to mails? If that is the case, then maybe you can configure it to include the mail thread. Also, in this particular mail that you have sent, the code is not visible. I see on nabble that you`ve used a different font or some special formatting that did not make it trough to the mailing list. If possible, please use a standard mail client, gmail or at least configure nabble(or whatever you`re using) to behave like one :) It will improve your response rate for future mails ;) Thanks, Eduard On Thu, May 3, 2012 at 4:05 PM, Vincent Massol <[email protected]> wrote:
On May 3, 2012, at 2:45 PM, jerem wrote:
Hello community,
No idea on this problem ?
What problem? I can't see any in your mail…
Thanks -Vincent
PS: I already asked you in the past to not remove initial mail context when you reply as otherwise it's impossible to follow you.
I'm pretty sure it's stupid but I'm stuck ... Teasing Motivation argument : it will soon slow down my progress on the mail archive applicaiton ... ;)
Thanks, Jeremie
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi, Sorry about that ... You're right my "nabble-ized" mails seem to be viewable correctly only from nabble ... :/ I put back here my initial request : Seems I did not understand everything about how to write unit tests ... Here's my problem : I want to test a class MA, a component, that has the following code (excerpt) : @Inject private Execution execution; @Override public void initialize() throws InitializationException { try { ExecutionContext context = execution.getContext(); ... } My test class MATest contains : @MockingRequirement private MA ma; /** * @see org.xwiki.test.AbstractMockingComponentTestCase#configure() */ @Override public void configure() throws Exception { try { final Execution execution = getComponentManager().lookup(Execution.class); Mockery context = new Mockery(); context.checking(new Expectations() { { oneOf(execution).getContext(); } }); Here I'm looking up the Execution in order to set expectations on it for the initialize to pass. Problem is that I'm still getting this at test execution : java.lang.AssertionError: unexpected invocation: execution.getContext() It seems that my initialize() method is called at lookup(), so how could I set-up the expectations before they're actually exercised ? : at org.xwiki.component.ma.internal.MA.initialize(MA.java:165) ~[classes/:na] at org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:295) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:358) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:324) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.lookup(EmbeddableComponentManager.java:147) [xwiki-commons-component-default-3.5.jar:na] Thanks for help, Jeremie 2012/5/4 Eduard Moraru <[email protected]>
Hi Jerem,
Are you using nabble.com directly to send/reply to mails? If that is the case, then maybe you can configure it to include the mail thread.
Also, in this particular mail that you have sent, the code is not visible. I see on nabble that you`ve used a different font or some special formatting that did not make it trough to the mailing list.
If possible, please use a standard mail client, gmail or at least configure nabble(or whatever you`re using) to behave like one :)
It will improve your response rate for future mails ;)
Thanks, Eduard
On Thu, May 3, 2012 at 4:05 PM, Vincent Massol <[email protected]> wrote:
On May 3, 2012, at 2:45 PM, jerem wrote:
Hello community,
No idea on this problem ?
What problem? I can't see any in your mail…
Thanks -Vincent
PS: I already asked you in the past to not remove initial mail context when you reply as otherwise it's impossible to follow you.
I'm pretty sure it's stupid but I'm stuck ... Teasing Motivation argument : it will soon slow down my progress on the mail archive applicaiton ... ;)
Thanks, Jeremie
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi Jeremie, On May 9, 2012, at 12:10 PM, Jeremie BOUSQUET wrote:
Hi,
Sorry about that ... You're right my "nabble-ized" mails seem to be viewable correctly only from nabble ... :/
I put back here my initial request :
Seems I did not understand everything about how to write unit tests ...
Here's my problem : I want to test a class MA, a component, that has the following code (excerpt) :
@Inject private Execution execution;
@Override public void initialize() throws InitializationException { try { ExecutionContext context = execution.getContext(); ... }
My test class MATest contains :
@MockingRequirement private MA ma;
/** * @see org.xwiki.test.AbstractMockingComponentTestCase#configure() */ @Override public void configure() throws Exception { try {
You shouldn't have a try/catch since you're no testing this
final Execution execution = getComponentManager().lookup(Execution.class); Mockery context = new Mockery(); context.checking(new Expectations() { { oneOf(execution).getContext(); } });
Here I'm looking up the Execution in order to set expectations on it for the initialize to pass.
BTW don't forget to add a will(returnValue(…))
Problem is that I'm still getting this at test execution :
java.lang.AssertionError: unexpected invocation: execution.getContext()
It seems that my initialize() method is called at lookup(), so how could I set-up the expectations before they're actually exercised ? :
By setting the expectations in configure(). Here's the javadoc for it: /** * Provides a hook so that users of this class can perform configuration before the component is looked up. This * allows for example the ability to set expectations on mocked components used in Initializable.initialize() * methods. */ public void configure() throws Exception { // Do nothing by default, this method is supposed to be overridden if needed. } I've now documented it at the class level. Thanks -Vincent
at org.xwiki.component.ma.internal.MA.initialize(MA.java:165) ~[classes/:na] at org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:295) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:358) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:324) [xwiki-commons-component-default-3.5.jar:na] at org.xwiki.component.embed.EmbeddableComponentManager.lookup(EmbeddableComponentManager.java:147) [xwiki-commons-component-default-3.5.jar:na]
Thanks for help, Jeremie
2012/5/4 Eduard Moraru <[email protected]>
Hi Jerem,
Are you using nabble.com directly to send/reply to mails? If that is the case, then maybe you can configure it to include the mail thread.
Also, in this particular mail that you have sent, the code is not visible. I see on nabble that you`ve used a different font or some special formatting that did not make it trough to the mailing list.
If possible, please use a standard mail client, gmail or at least configure nabble(or whatever you`re using) to behave like one :)
It will improve your response rate for future mails ;)
Thanks, Eduard
On Thu, May 3, 2012 at 4:05 PM, Vincent Massol <[email protected]> wrote:
On May 3, 2012, at 2:45 PM, jerem wrote:
Hello community,
No idea on this problem ?
What problem? I can't see any in your mail…
Thanks -Vincent
PS: I already asked you in the past to not remove initial mail context when you reply as otherwise it's impossible to follow you.
I'm pretty sure it's stupid but I'm stuck ... Teasing Motivation argument : it will soon slow down my progress on the mail archive applicaiton ... ;)
Thanks, Jeremie
participants (4)
-
Eduard Moraru -
jerem -
Jeremie BOUSQUET -
Vincent Massol