tdd
Quarry 0.5.2
Experimental test/spec system exploring storyboards and AOP-based design contracts more>>
Quarry 0.5.2 is an extremely powerful utility for developers. It is actually a BDD/TDD framework that can frees you of strict nomenclatures, opening up vast reserves in test ore and behavior mining. Quarry uses a literate programming model that eliminates the barriers on how to describe your specifications and unit tests, leading to a proverbial gold mine in systems documentation.
Major Features:
Quarry's BDD/TDD system is unique in many ways.
- Firstly:
- It does not enforce a BDD or TDD perspective, but leaves that choice up to the programmer and the case at hand, by supporting a diversified set of "this-is-so" methods.
- Quarry's defacto terminology is expected because it is suitable to both testers and specifiers. And Quarry full supports assert and should nomenclatures as well for those atone to those particular perspectives.
- Secondly:
- Quarry's specifications are an application of literate programming. As such, they are completely free-form. In other words, unlike other BDD/TDD systems, Quarry has no special organization domain language. Instead specifications are simply text/markup files (typically RDoc format).
- Quarry also provides a flexible test-double facility consisting of stubs, light-weight mocks and spies. These are very flexible tools. For instance, a Quarry stub can act as a revaluble module or automatically via object's singleton class.
- Quarry actually discourages the use of mocks as they are traditionally understood, because they create overly tight coupling between specification and implementation. But Quarry provides light-weight mocks that are in effect pre-asserted stubs.
- Lastly
- A method-probe/test-spy is also under development, which can be used to dip-down into a method and provide a readout of the methods signatures.
- Also in the works is an embedded test/spec extraction tool. This allows tests/specs to be embedded in block comments, which can be a very convenient means to provide unit test/specs.
Enhancements:
- Markup tracks before and after macros.
- Script output using --script option.
Requirements:
- Mac OS X
FMPP 0.9.14
FreeMaker-based text file preprocessor for your Mac more>> FreeMaker-based text file preprocessor for your Mac
FMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates. FMPP is particularly designed for HTML preprocessor, to generate complete (static) homepages: directory structure that contains HTML-s, image files, etc.
But of course it can be used to generate source code or whatever text files. FMPP is extendable with Java classes to pull data from any data sources (database, etc.) and embed the data into the generated files.
FMPP is 100% Java, and it runs on all modern platforms like Mac OS X, Linux, Windows, Solaris, etc.
NOTE: FMPP is licensed and distributed under the terms of the BSD License.
Main features:
- Preprocessor language (it is the FreeMarker Template Language)
- All the usual template constructs, such as include, if/else/elseif, loop.
- Macros with named arguments and nested content (body).
- Variables (global, or local for a macro call)
- Complex expressions using string, arithmetical and logical operations. Extensible with custom functions.
- Automatic and manual escaping (HTML, XML, custom function)
- Transforming (filtering) blocks of output; extensible with custom transformations in Java.
- Capturing block of output into a variable.
- Charset aware, internally uses UNICODE.
- Number and date/time formatting with masks (patterns). Locale sensitive number and date/time formatting.
Bulk file processing:
- Process entire directories recursively.
- Different file processing mode can be chosen for each file, based on path patterns (as file extension): execute file as template, or parse it as XML and then render it to output with a template, or binary-copy it, or ignore it.
- Can ignore bad source files and log the error message into a text file.
- Can guarantee that certain files will be processed later than others.
You can expose data from arbitrary data sources be writing extensions in Java. Currently out-of-the-box supported data sources:
- XML file
- CSV and tab-separated text files
- Java "properties" file
- Ant properties, Ant project and target information
- System clock
- Plain text file
Other highlighted features:
- Output splitting: a single source file can generate multiple output files (including 0 output files).
- Automatic file inclusion, automatic escaping, and whatnot that can be done with automatically inserted headers and footers, chosen based on path patterns.
- Generate HTML -s with calculated width and height.
- Calculate the relative path to the home directory, or to any other file.
- Rendering (transforming) XML files with FreeMarker templates. (Similar to the typical XSLT usage pattern.)
- Query the size/existence of source files.
- Query output encoding (charset).
- URL-escaping (with the actual output charset).
System requirements:
-
Enhancements
Bug fixes:
- Fixing bug that caused "skipUnchanged" to skip a file when the destination was newer than the source. Now it only skips files when the modification date of the source and destination files are exactly the same.
- Fixing some TDD parser crashes occurring when parsing invalid TDD.
- Preventing obviously useless traversing inside SVN and CVS directories.
- Fixed some typos in the documentation.
New features, improvements:
- FMPP now can create empty directories using one of the two new features.
- The XML data loader now supports XInclude-s by setting its "xincludeAware" option to true.
- To follow the Ant conventions, now "sourceRoot" can alternatively be specified with the "srcdir" attribute, and "outputRoot" with the "destdir" attribute of the Ant task.
- API: New JavaBean propery in fmpp.Engine and fmpp.setting.Settings: "dontTraverseDirectories". It should be set to true by front-ends that explicitly specify the list of all source files and source directories, rather than expecting the Engine to discover them. Till now such front-ends only specified the list of files, so this property wasnt needed. However, to support the new alwaysCreateDirectories setting, now the list of directories should be passed as well, and hence the need for this new property.
- Updated freemarker.jar and the included FreeMarker Manual to 2.3.15.
- Page: 1 of 1
- 1