Angel \”Java\” Lopez on Blog

September 18, 2014

TDD: Links, News And Resources (23)

Previous Post

Lo que los gurús nunca te cuentan sobre Kanban y SCRUM

Moving from Practice to Production with Test-Driven Development

TDD is TDD (And Far From Dead) – Software People Inspiring

A TDD Journey: 1-Trials and Tribulations

A TDD Journey: 2- Naming Tests; Mocking Frameworks; Dependency Injection–naming-tests-mocking-frameworks-dependency-injection/

When TDD Doesn’t Matter

Test-Driven Development… by Grzegorz Gałęzowski [PDF/iPad/Kindle]

Creating and testing Meteor applications with BDD using Velocity and Jasmine | Dr. Llama’s Blog

One Mock Per Test Considered Not Awesome at

Everyday Tales: We Call It Unit For A Reason

Programming Without Fear | The Journeyman Programmer

Applying TDD to Scalding Development |

My Links

Stay tuned!

Angel “Java” Lopez

July 26, 2014

AjKeyvs Implementing Key-Value Store in C# (1) The Project

Filed under: .NET, AjKeyvs, C Sharp, No, NoSQL, Open Source Projects, Test-Driven Development — ajlopez @ 6:40 pm

I want to implement a key-value store (as Redis) in C#, play with data structures, and practice TDD (Test-Driven Development). I started:

The current structure:

There is a class library project, AjKeyvs, that contains the collections in an in-memory repository. The interesting part of this projects is to implement arrays and sets that can be sparse, having different keys. Example, having a key 1 (one) and a key 1000000 (one million) does not imply to have an array with one million positions. At the same, I want to have a good access and update time. In other use cases, I will have string keys, like “user”, “user:1”, “user:1:email”, etc. There are use cases that need the use of sets, with union, intersection, difference, etc… For integer keys, I jave a set where a could turn a bit on or off, for the presence or absense of an element. More implementation details in upcoming post.

The library can be used in-process, but I added a server and a client program. The server listen commands sent by the clientes. All collections reside in memory. Persistence is something orthogonal to the implemented use cases. I should decide if add the persistence into the command processing, or is something to be implemented outside the project.

As usual, I followed TDD workflow.

Next topics: data structures, collections, commands, concurrency, etc.

Stay tuned!

Angel “Java” Lopez

July 13, 2014

SharpBus in C# (1) First Steps

Filed under: .NET, C Sharp, Open Source Projects, SharpBus, Test-Driven Development — ajlopez @ 11:54 am

Last month I started to write SharpBus, a simple message processor inspired by ideas from Mule Java project. See:

As usual, I’m using TDD (Test-Driven Development), implementing small use cases and API consumption, in the simplest possible way. In fact, the project is a personal exercise of TDD. I hope that some may be useful beyond that. For now, it is an example that I want to share my workflow.

You can see the progress in:

The main ideas to implement are:

- There are Messages containing Payloads and Properties (dictionary of name / value)

- There Flows that process messages

- A Flow is composed of several elements

The elements can be chained in the flow, and can be:

- A Transformer, taking a payload or complete message, and returns a transformed version

- A Processor, taking a payload or complete message, operate on them, maybe accessing the business domain, but without transformation

- Input, a payload/message producer

- Output, a payload/message consumer, at the end od the Flow process

- A Rourter, given a payload/message, it decides with Branch to follow in the Flow. Each Branch is identified by a name.

There will also be items that can issue new posts than the current, and can issue them to different flows in the system. The message producers should be able to run threads (Threads) in principle. And there will be a set of threads (Pool of Threads) attending the incoming messages and deriving them to the respective flows.

A flow can take a message and return a response (Request / Response), or it can take a message, process it without returning an answer.

Some items need complete Message and other items operate over the Payload.

The elements in the world of Mule / Java are objects. Notably, in C #, the simplest way to implement is using lambdas. So, following TDD, the early testing and deployment has come out that way. You can see in some simple tests:

As an example of send a Payload and receive an answer, using an empty Flow:

var flow = Flow.Create();

Assert.AreEqual(1, flow.Send(1));

To send a payload and transform it:

var flow = Flow.Create()
    .Transform(x => ((int)x) + 1);

Assert.AreEqual(2, flow.Send(1));

The .Transform Transform expects a Func<object, object> which may be provided at the time with a lambda. In a classic Java 7 Mule, we should provide an object that implements an interface having a method to transform the Payload. I have to think whether it is worth having a typed Transform <T> (receiving T and returns T), or Transform <T, S> (receiving and returns T S).

I decided to build the flow by code. In the Mule environment Spring is used to set up the flow using XML. I think it is time to explore this other way, build the flow by code, and put it as the "first way", ie, as the way on which everything else could be mounted. If anyone ever needed a DSL (Domain-Specific Language) for creating flows could be implemented this way by having well designed code.

Following TDD, I still have not a case of using a Message (a complete message with content (Payload) and properties (Properties, a name / value) dictionary. All of the above is to process Payload directly.

Upcoming topics: add Message Payload with the output of messages, routing, assembling branches, etc. ..

Stay tuned!

Angel “Java” Lopez

July 6, 2014

TDD: Links, News And Resources (22)

Previous Post
Next Post

Myron Marston » Thoughts on Mocking

Why Your Test Suite Sucks – YouTube

Detecting Changes in Third-Party Code – The Code Whisperer

Justin Searls: JavaScript Testing Tactics on Vimeo

TDD by example: Patterns | Nico Cortés blog

Steve Freeman On TDD: How Do We Know When We’re Done?

Unit Testing JavaScript Applications

Scan Agile 2012: Phil Calçado: Better Functional Design Through Test-Driven Development on Vimeo

The TDD That Can be Spoken Is Not the Eternal TDD

The Domain Discontinuity | 8th Light

Test Double | Our Thinking | The Failures of “Intro to TDD”

¿Está TDD muerto o más vivito y coleando que nunca? – YouTube

TDD en C# con Visual Studio y NUnit – YouTube

Learn Test Driven Development in Flask – Part 2 | /dev/notes

Python: Automated Testing with Grunt (Node.js) | /dev/notes

Tom Stuart on TDD, BDD and Ruby

Test-Driven Development by Kent Beck

e-ferro Venturas/Desventuras de “informático”: De Test Unitarios de clases a Tests Unitarios de funcionalidad, un gran paso

JUnit: A Cook’s Tour

You won’t believe how old TDD is | Arialdo Martini

(10) Learning About TDD: The Purpose of #isTDDDead

Test Isolation Is About Avoiding Mocks — Destroy All Software Blog

Mis impresiones sobre el debate #isTDDDead | Jose Armesto

My Links

Stay tuned!

Angel “Java” Lopez

July 5, 2014

TDD: Links, News And Resources (21)

Previous Post
Next Post

Test-Driven Development as Pragmatic Deliberate Practice – jbrains

12 Meses – 12 Lenguajes (Java) | AprendiendoTDD

Is TDD dead? [Part III] – YouTube

Tea-Driven Development :: How much do you refactor?

Is TDD Dead

Learn Test Driven Development in Flask – Part 1

James Shore: How Does TDD Affect Design?

How Does TDD Affect Design? | Let’s Code JavaScript

Veterans of TDD: J B Rainsberger | My Not So Private Tech Life

Is TDD dead? [Part II] – YouTube


The Little Mocker | 8th Light

The DHH Problem

Test Induced Design Damage? | 8th Light

The Curious Case of Tautological TDD – The Code Whisperer

My Personal Failures in Test Isolation — Extra Cheese

Script Junkie | Test Driven Development: Top-Down or Bottom-Up?

When Really To Use Mocks? First Ask: “What Are Mocks?” – Software People Inspiring

The pitfalls of Test-Driven Development « Otaku, Cedric’s blog

Damian Nicholson: Writing (testable | maintainable | scalable | rock solid) JavaScript on Vimeo

James Shore: Test-Driven JavaScript Master Class on Vimeo

My Links

Stay tuned1

Angel “Java” Lopez

July 4, 2014

TDD: Links, News And Resources (20)

Previous Post
Next Post

When to Mock | 8th Light

TDD, BDD & Test de aceptación

How To Build A Ruby Gem With Bundler, Test-Driven Development, Travis CI And Coveralls, Oh My! | Smashing Magazine

Mocks and the Dangers of Overspecified Software | Ian Cooper

Veterans of TDD: James Shore | My Not So Private Tech Life

Veterans of TDD: Steve Freeman | My Not So Private Tech Life

Veterans of TDD: Ron Jeffries | My Not So Private Tech Life

Is TDD dead? – YouTube

Automated Testing and the Evils of Ice Cream

Test-induced design damage (DHH)

October CincyRb – Jim Weirich on Decoupling from Rails – YouTube


Gerard Meszaros – Find the Right Abstraction Level for Your Tests, For automated tests to provide true return on investment, they must do more than verify …

Yo no soy DHH. Long live TDD | Jose Armesto

The Social Networking Kata

Kickstart Academy

Professionalism and TDD (Reprise) | 8th Light

TDD, Straw Men, and Rhetoric — Destroy All Software Blog

Slow database test fallacy (DHH)

sethvargo/chefspec · GitHub

When TDD doesn’t work. | 8th Light


Mais uma vez… TDD não é bala de prata! |

My Links

Stay tuned!

Angel “Java” Lopez

June 19, 2014

TDD: Links, News And Resources (19)

Previous Post
Next Post

BDD / ATDD for your Agile REST API, part 2 – Pragmatic API

BDD / ATDD for your Agile REST API – Pragmatic API

Monogamous TDD | 8th Light – Building on solid foundations by Steve Freeman, Nat Pryce -

Code Coverage of QUnit Tests using Istanbul and Karma

TDD is dead. Long live testing. (DHH)

Steve Freeman – Test-Driven Development (that’s not what we meant) on Vimeo


Clean Code Cheat Sheet | bbv Blog

Please don’t use Cucumber | Jimmy Cuadra

Generative Testing – Pivotal Tracker

Steve Tooke – The Cucumber Test Trap

Microsoft Fakes Framework in Visual Studio 2012

Introducing SharePoint Emulators – Microsoft Application Lifecycle Management – Site Home – MSDN Blogs

Test Driven Development in SharePoint 2010

TDD in Sharepoint Mocking/Testing user privilages – Stack Overflow

Test-Driven-Development with SharePoint 2010 By Andreas Rudolf Aschauer, BSc | The Unit Testing Blog – Typemock

SPCA2013 – Test-driven Development with SharePoint 2013 and Visual …

Part 1 — SharePoint Retreat–TDD and Unit Testing, the methodology used. – Blog of an overweight SharePoint addict

Having Trouble with Small Steps? Why? You already do them. | James Grenning’s Blog

The True Corruption of Agile | 8th Light

Survey Result on Usage of TDD | codecentric Blogcodecentric Blog

My Links

Stay tuned!

Angel “Java” Lopez

June 5, 2014

TDD: Links, News And Resources (18)

Previous Post
Next Post

Can TDD Help Reduce Integration Time?

Elixir is for programmers

StudiesOfTestDrivenDevelopment – Agile Bibliography

Matt Sears | Minitest Quick Reference

Kickstart your next project with a Walking Skeleton – Code Climate Blog

Concordion – Technique

Code Kata

Expectations by jaycfields

Reused Abstractions Principle (RAP) – Software People Inspiring

When Should You Think? | 8th Light

Test-Driven Development. A Cognitive Justification? – Steve Freeman

Using No Mocks to Improve Design « Arlo Being Bloody Stupid

learn Scala with TDD – Stack Overflow

How Scala promotes TDD

TDD is a Path


Should you TDD on a Lean Startup? — Tech Talk — Medium

So Long, and Thanks for All the Tests

XP Epsiode


TDD, Architecture & Non-Functional Goals – All Of These Things Belong Together – Software People Inspiring

Jeremy Pollack of on Test-driven Development and More

the middle hexagon should be independent of the adapters | silk and spinach


My Links

Stay tuned!

Angel “Java” Lopez

June 2, 2014

TDD: Links, News And Resources (17)

Previous Post
Next Post

RockPaperScissorsDoubleDispatchRuby/RockPaperScissors.rb at master · trikitrok/RockPaperScissorsDoubleDispatchRuby

Refactoring by the Book | ThoughtWorks

Responsible Design… by J. B. Rainsberger [PDF/iPad/Kindle]

Agile & Coding: From the streets of Test Driven Development: JavaScript

Mistaeks I Hav Made: Refactoring Interfaces

Jay Fields’ Thoughts: REPL Driven Development

Infinitest – Jayway


Metrics based Refactoring for cleaner codeGraham Brooks’ blog

A quick overview of NUnit tests – CodeProject

Windows Phone TDD Part 2: Working with Caliburn.Micro – CodeProject

The Deep Synergy Between Testability and Good Design on Vimeo

Independent Study :: El Fin | Derek Hammer

“The Clean Code Talks — Unit Testing” – YouTube


Mocks for Commands, Stubs for Queries

Implementing a Flowchart with SVG and AngularJS – CodeProject

My Links

Stay tuned!

Angel “Java” Lopez

May 29, 2014

TDD: Links, News And Resources (16)

Previous Post
Next Post

Commentary on ‘Roman Numerals Kata with Commentary’ | F# for fun and profit

TDD and Refactoring with LEGO

Home – Chai

Programmers Without TDD Will be Unemployable by 2022 | Web Builder Zone

Workflows of Refactoring

The Transformation Priority Premise | 8th Light


Feelings Erased: Mocks are “breaking encapsulation”? Here’s why I disagree…

Getting Started · Arquillian Guides

Triangulation in Test-driven Development – YouTube

Visual Studio 2012: “Where is the Test Toolbar. Couldn’t find it anywhere” – Microsoft Application Lifecycle Management – Site Home – MSDN Blogs

Robert C. Martin – The Land that Scrum Forgot – YouTube

Mistaeks I Hav Made

Mistaeks I Hav Made: Visualising Test Terminology

Skills Matter : In The Brain of Carlos Ble: Behaviour-driven

Putting An Age-Old Battle To Rest – The Code Whisperer

Beyond Mock Objects – The Code Whisperer

Go Convey


My Links

Stay tuned!

Angel “Java” Lopez

Older Posts »

Theme: Shocking Blue Green. Get a free blog at


Get every new post delivered to your Inbox.

Join 67 other followers