|
|||||
|
|
|||||
DelegationTestExample
Delegation can be tested in PicoUnit quite succintly using the 'DelegateVerify' interface, using this interface you can specify that delegation takes place in one line of code: public void testDelegatorDelegatesSomeMethod(DelegateVerify should) {
should.delegateTo(delegate.someMethod()).whenCalling(delegator.someMethod());
}
Here's a full example involving a delegating implementation of Database package example.delegate; import example.model.Database; import picounit.DelegateVerify; import picounit.Test; public class DelegatingDatabaseTest implements Test { private Database delegate; private DelegatingDatabase delegatingDatabase; public void mock(Database delegate) { this.delegatingDatabase = new DelegatingDatabase(delegate); this.delegate = delegate; } public void testDelegatesIsConnected(DelegateVerify should) { should.delegateTo(delegate.isConnected()) .whenCalling(delegatingDatabase.isConnected()); } public void testDelegatesQueryCount(DelegateVerify should) { should.delegateTo(delegate.queryCount("queryCountSql")) .whenCalling(delegatingDatabase.queryCount("queryCountSql")); } public void testDelegatesInsert(DelegateVerify should) { should.delegateTo(delegate.insert("insertSql")) .whenCalling(delegatingDatabase.insert("insertSql")); } } public class DelegatingDatabase implements Database { private final Database delegate; public DelegatingDatabase(Database delegate) { this.delegate = delegate; } public boolean isConnected() { return delegate.isConnected(); } public int queryCount(String queryCountSql) { return delegate.queryCount(queryCountSql); } public boolean insert(String insertSql) { return delegate.insert(insertSql); } } |
|||||
|
Copyright 2003-2006 - The Codehaus. All rights reserved unless otherwise noted.
Powered by Atlassian Confluence
|
|||||