DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

The Latest Languages Topics

article thumbnail
Mocking Method with Wildcard Generic Return Type
[Ivan Zerin provides a primer on mocking methods that contain generic return types.] There are several cases where construction when().thenReturn is not suitable during Unit tests. One of then generic return type. I have faced such issue, let's take a look. There is a method in interface declaration: public interface FooInterface { public Iterable getList(); ... } Implementation looks like this: public class Foo implements FooInterface { public List getList() { ... } ... } At first mocking of such method should not be something unusual: public class UnitTest { @Mock private FooInterface mockFoo; @Test public void someUnitTest() { ... List testList = generateTestList(); when(mockFoo.getList()) .thenReturn(testList); } } But this code won't compile with error: Cannot resolve method 'thenReturn(List). Seems to be some mistake, cause returned type are correct from the interface point of view. This error happening cause compiler can not gurantee that returned type of method getList() will be List. Actually return type of method getList() in this case is Iterable and this means "Return some Iterable object with any objects that extends SomeClass". Let's rename this type as 'X'. So when(mockFoo.getList()) will create object OngoingStubbing> and it has method thenReturn(Iterable). Compiler can not tell what type X before runtime and cannot perform safe cast from List to Iterable (we perfrom actuall call of method thenReturn(List)). Sounds a little tricky but let's assume that SomeClass is standard Java class Number. Then classes Integer and Double are both fulfill the criteria of List. Let's say that as return type of mock we will use List, in this case, compiler should be ready that actual work with code during runtime will be performed with List too, but it is clearly that cast from Double to Integer will be incorrect (try to cast double value 12.6 to int). You could argue that in the case of mockito compiler won't need to bother about the casting of returned type because call of original method would not produce anything, but it is known by mockito. From compiler point of view, it is only Java code, that should be checked for safety and correctness before compiling. Ok, so how we should deal with such cases in mockito? Use doReturn() method: doReturn(testList).when(mockFoo).getList(); Such expression is not type safe, so it were designed for exceprional cases, so use it only when you cannot use standart when().thenReturn(), which is the type-safe, elegant and more readable syntax.
April 27, 2016
by Ivan Zerin
· 44,475 Views · 4 Likes
article thumbnail
Top 10 CSS Bad Practices
CSS is essential for web development; however, it's difficult to get right for your average developer, who may have interests elsewhere in the stack. Read this article to avoid needling inconsistencies and adopt best practices.
April 27, 2016
by Jonathan Danylko
· 10,187 Views · 11 Likes
article thumbnail
Logback Configuration: Using Groovy
Logback is one of the most popular logging frameworks for Java, but did you know you could configure it using Groovy? This guide walks you through the whole process.
April 27, 2016
by John Thompson
· 26,411 Views · 7 Likes
article thumbnail
Collaborators and Libraries: Java Design Patterns for Success
Should constructors throw exceptions? What can the 1815 Congress of Vienna teach us about good Java design?
April 26, 2016
by Alan Hohn
· 10,682 Views · 7 Likes
article thumbnail
Sorted Pagination in Cassandra
We have a look at how to implement sorted pagination with the popular NoSQL solution Cassandra.
April 26, 2016
by Felipe Fernández
· 13,756 Views · 5 Likes
article thumbnail
Build a REST API with XML Payload
Creating REST APIs with XML payloads.
April 23, 2016
by Neerav Aggarwal
· 49,605 Views · 3 Likes
article thumbnail
Java 8 New Date And Time Overview
A practical introduction to the new and improved Date & Time API in Java 8. If you've not had chance to review or use it yet then start here!
April 22, 2016
by Siva Prasad Rao Janapati
· 14,877 Views · 5 Likes
article thumbnail
JavaScript MVVM — You’re (Probably) Doing it Wrong
If you are using one of the many frameworks that say they are using JavaScript MVVM, you might not be using it the way it should be used. In this article, Dave Bush defines MVVM, analyzes its advantages, and provides some MVVM best practices to follow.
April 21, 2016
by Dave Bush
· 22,923 Views · 10 Likes
article thumbnail
Logback Configuration: Using XML
Logback is a logging library from the creator of JUnit. In this series continuation, Spring guru John Thompson shows how to configure it using XML.
April 20, 2016
by John Thompson
· 92,371 Views · 16 Likes
article thumbnail
Creating Procedural Normal Maps for SceneKit
How to create images maps in SceneKit on iOS.
April 20, 2016
by Simon Gladman
· 5,187 Views · 2 Likes
article thumbnail
Protobuf Performance Comparison and Points to Consider When Deciding If It’s Right For You
Google’s Protobuf can deliver increased performance of data delivery, this article helps you find out if it is right for you.
April 19, 2016
by Yogesh Shinde
· 18,725 Views · 4 Likes
article thumbnail
Java Champions Get IntelliJ IDEA Ultimate for Free
Are you a Java Champion? Now you can get IntelliJ IDEA Ultimate as yet another reward.
April 18, 2016
by Robert Demmer
· 24,750 Views · 2 Likes
article thumbnail
Default HotSpot Maximum Direct Memory Size
Working with off-heap storage can make a big difference when working with large data sets. But how do you know how much memory you have at your disposal? Read this article and find out!
April 18, 2016
by Dustin Marx
· 41,607 Views · 7 Likes
article thumbnail
Protect Your Immutable Object Invariants in More Complex Java Objects
Learn the basics on how to write robust immutable Java objects and reap the benefits of immutable objects in your code.
April 17, 2016
by Per-Åke Minborg
· 12,591 Views · 11 Likes
article thumbnail
Yes, Java Has Flaws. But...
Is Java the new Cobol? Probably, but Cobol is still running. Java will be in enterprises for at least 20 more years.
April 15, 2016
by Tim Spann DZone Core CORE
· 25,412 Views · 39 Likes
article thumbnail
Looking Forward to PGConf US 2016
In this piece, we interview Joshua Drake and Amanda Gilmore, speakers at PGConf US 2016, for a bit of background info about each of their personal experiences with Postgres and catch a quick glimpse of what they'll be covering in their upcoming talks.
April 14, 2016
by Michael Tharrington
· 3,719 Views · 2 Likes
article thumbnail
Properly Shutting Down An ExecutorService
This tutorial will teach you that you don't need to pilot an A-Wing to shut down these ExecutorServices.
Updated April 14, 2016
by T Tak
· 75,433 Views · 11 Likes
article thumbnail
Creating Immutable Classes in Java
An introduction to immutable classes in Java, such as a String class.
Updated April 14, 2016
by Hari Kiran G
· 43,042 Views · 29 Likes
article thumbnail
Sqoop: Import Data From MySQL to Hive
Use Sqoop to move your MySQL data to Hive for even easier analysis with Hadoop.
April 14, 2016
by Hardik Pandya
· 146,929 Views · 8 Likes
article thumbnail
Load Balancing of WebSocket Connections
The problem of WebSocket load balancing has always been a hot issue when managing large systems. This article takes a look at some possible solutions to that problem.
April 13, 2016
by Konstantin Shamko
· 73,319 Views · 6 Likes
  • Previous
  • ...
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • ...
  • Next
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook
×