Quality Code: Software Testing Principles, Practices, and Patterns (Jason Arnold's Library) by Stephen Vance
Author:Stephen Vance
Language: eng
Format: epub
Publisher: Addison-Wesley Professional
Published: 2014-08-10T16:00:00+00:00
...
}
Naming the Unnamed
Many languages support the declaration of entities in a nested scope. Java supports inner classes. C++ supports nested classes. JavaScript lets you declare functions in just about any scope.
Several languages, including Java and JavaScript, allow you to declare entities anonymously. In Java, you create anonymous inner classes, commonly for simple or one-off callback classes like Swing event handlers (see Listing 9-8). JavaScript developers pervasively use anonymous functions as callbacks (Listing 9-9), for immediate execution, and to wrap function declarations to freeze closures.
Listing 9-8: Example of an anonymous inner class as a Java Swing event listener
Click here to view code image
button.addActionListener(
new ActionListener() {
public void ActionPerformed(ActionEvent event) {
System.out.println(event.getActionCommand());
}
});
Listing 9-9: JavaScript anonymous function as a click event handler in jQuery
Click here to view code image
$('.clickable').bind(''click', function(event) {
alert('Element has class(es): ' + event.target.className);
});
Anonymous entities are convenient to create, but difficult to test. They often have no visible reference in any scope external to the one in which they are declared. In many cases, the execution context dictates their signature (for functions) or interfaces (for classes). A simple Extract Class or Extract Method refactoring can bring anonymous entities into a visible scope with a name through which they can be referenced for testing purposes.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Deep Learning with Python by François Chollet(12571)
Hello! Python by Anthony Briggs(9916)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9796)
The Mikado Method by Ola Ellnestam Daniel Brolund(9779)
Dependency Injection in .NET by Mark Seemann(9340)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8299)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7763)
Grails in Action by Glen Smith Peter Ledbrook(7696)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(7081)
Microservices with Go by Alexander Shuiskov(6849)
Practical Design Patterns for Java Developers by Miroslav Wengner(6769)
Test Automation Engineering Handbook by Manikandan Sambamurthy(6708)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6414)
Angular Projects - Third Edition by Aristeidis Bampakos(6114)
The Art of Crafting User Stories by The Art of Crafting User Stories(5644)
NetSuite for Consultants - Second Edition by Peter Ries(5576)
Demystifying Cryptography with OpenSSL 3.0 by Alexei Khlebnikov(5381)
Kotlin in Action by Dmitry Jemerov(5064)
