[jboss-user] [JBoss Seam] - Re: Unit Testing EL in EJB-QL/HQL
matt.drees
do-not-reply at jboss.com
Sun May 13 01:29:27 EDT 2007
Yeah, I mock the log object in my unit tests to get around the fact that there is no application context active. It looks like this, and seems to work ok:
| package org.uscm.crs.misc;
|
| import org.jboss.seam.log.Log;
| import org.jboss.seam.log.Logging;
|
| public class MockSeamLogger implements Log {
|
|
| private Log log;
|
| public MockSeamLogger() {
| log = Logging.getLog(MockSeamLogger.class);
| }
|
| public MockSeamLogger(Class clazz) {
| log = Logging.getLog(clazz);
| }
|
|
| private Object clean(Object object) {
| if (object instanceof String) {
| String string = (String) object;
| return string.replace("#{", "{");
| }
| return object;
| }
|
| public void debug(Object object, Object... params) {
| log.debug(clean(object), params);
| }
|
|
| public void debug(Object object, Throwable t, Object... params) {
| log.debug(clean(object), t, params);
|
| }
|
| public void error(Object object, Object... params) {
| log.error(clean(object), params);
| }
|
| public void error(Object object, Throwable t, Object... params) {
| log.error(clean(object), t, params);
|
| }
|
| public void fatal(Object object, Object... params) {
| log.fatal(clean(object), params);
| }
|
| public void fatal(Object object, Throwable t, Object... params) {
| log.fatal(clean(object), t, params);
|
| }
|
| public void info(Object object, Object... params) {
| log.info(clean(object), params);
| }
|
| public void info(Object object, Throwable t, Object... params) {
| log.info(clean(object), t, params);
|
| }
|
| public boolean isDebugEnabled() {
| return true;
| }
|
| public boolean isErrorEnabled() {
| return true;
| }
|
| public boolean isFatalEnabled() {
| return true;
| }
|
| public boolean isInfoEnabled() {
| return true;
| }
|
| public boolean isTraceEnabled() {
| return true;
| }
|
| public boolean isWarnEnabled() {
| return true;
| }
|
| public void trace(Object object, Object... params) {
| log.trace(clean(object), params);
| }
|
| public void trace(Object object, Throwable t, Object... params) {
| log.trace(clean(object), t, params);
| }
|
| public void warn(Object object, Object... params) {
| log.warn(clean(object), params);
| }
|
| public void warn(Object object, Throwable t, Object... params) {
| log.warn(clean(object), t);
| }
|
| }
|
I'm definitely interested to hear if anyone else has found useful patterns for unit testing. I'm wondering if it'd be worth it to simply set up the Application context manually; it might be lightweight enough to be reasonable in a unit test.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045259#4045259
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045259
More information about the jboss-user
mailing list