Embed
Email

2007-03-26 Fluent Unit Testing

Document Sample

Shared by: huanghengdong
Categories
Tags
Stats
views:
0
posted:
12/15/2011
language:
pages:
9
testFluently();









21.11.06 Footer text

1

Simple measure to make tests more fluent



 List initialization in tests

 Fluent interfaces

 Nifty tools......









21.11.06 Footer text

2

List initialization

public void testColorComparison() {

Collection colors = new ArrayList();

colors.add("RED");

colors.add("BLUE");

colors.add("GREEN");

assertTrue("colors.contains(\"RED\")", colors.contains("RED"));

}









21.11.06 Footer text

3

List initialization



public void testColorComparisonUsingArrayInitialization() {

Collection colors = Arrays.asList("RED", "BLUE", "GREEN");

assertTrue("colors.contains(\"RED\")", colors.contains("RED"));

}





public void testColorComparisonUsingArrayInitializationJdk4Style() {

Collection colors = Arrays.asList(new String[] {"RED", "BLUE", "GREEN"});

assertTrue("colors.contains(\"RED\")", colors.contains("RED"));

}









21.11.06 Footer text

4

Add elements......



public void testMethodAdd() {

Order order = new Order();

order.addOrderLine(new OrderLine());

order.addOrderLine(new OrderLine());

assertEquals(2, order.getNumberOfOrderLines());

}









21.11.06 Footer text

5

....fluently......



public void testMethodAddAndMethodChaining() {

Order order = new Order();

order.addOrderLine(new OrderLine()).addOrderLine(new OrderLine());

assertEquals(2, order.getNumberOfOrderLines());

}





public void testMethodAddUsingVarArgs() {

Order order = new Order();

order.addOrderLine(new OrderLine(), new OrderLine());

assertEquals(2, order.getNumberOfOrderLines());

}









21.11.06 Footer text

6

Collections continued......

public void testCoalesceOrderLineNaive() {

.......

for (Iterator iterator = coalescedOrderLines.iterator(); iterator.hasNext();)

OrderLine orderLine = iterator.next();

if ("17".equals(orderLine.getProductCode())) {

found17 = true;

} else if ("18".equals(orderLine.getProductCode())) {

found18 = true;

} else {

fail("OrderLine should no exists[" + orderLine + "]");

}

}

assertTrue("found17", found17);

assertTrue("found18", found18);

}









21.11.06 Footer text

7

...fluently



public void testCoalesceOrderLinesUsingCommonsCollections() {

.....

Collection orderLines =

order.coalesceOrderLineByProducts();

assertEquals(2, order.getNumberOfOrderLines());





assertEquals(new OrderLine("17", 20, 220d), CollectionUtils.find(orderLines,

new BeanPropertyValueEqualsPredicate("productCode", "17")));





assertEquals(line18, CollectionUtils.find(orderLines,

new BeanPropertyValueEqualsPredicate("productCode", "18")));

}









21.11.06 Footer text

8

References



 http://www.martinfowler.com/bliki/FluentInterface.html









21.11.06 Footer text

9



Related docs
Other docs by huanghengdong
2012_Vendor_Form_Wedding_Expo
Views: 0  |  Downloads: 0
SCOPE 1 GP letter v2.0 12Mar2007
Views: 0  |  Downloads: 0
Boston_immigration_records
Views: 2  |  Downloads: 0
PSC MATRIX of achievement 080709
Views: 0  |  Downloads: 0
Summary - CIRCA
Views: 0  |  Downloads: 0
ieee_wiley_ebooks_library_customer_title_list
Views: 0  |  Downloads: 0
2009-2010_ACC0044_fishers_772_07-dec-2009
Views: 1  |  Downloads: 0
FSP20111216-EN
Views: 0  |  Downloads: 0
Workshops
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!