Info |
---|
This page walks you through a simple TDD kata git clone the code from |
Pre-requisite knowledge
How to install a the unit testing framework for the particular language
An understanding of why testing is important
How to write a unit test and run the test
The three A's (Arrange, Act, Assert)
Writing incremental tests and why this is important - one test, some production code, then next test and some production code
...
Code Block |
---|
var assert = require("chai").assert; var expect = require("chai").expect; // Put your CUT here describe('Splitting a string', function() { it('Input an empty string, return an empty array []', function() { // arrange... var cut = new StringSplitter(); var expectedResult = [] var emptyString = ""; // act... var actualResult = cut.splitString( emptyString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); }); |
...
CUT 1
Code Block |
---|
class StringSplitter { splitString( stringToSplit ) { var result = []; if( stringToSplit.length < 1 ) return result; return result; } } |
...
Code Block |
---|
var assert = require("chai").assert; var expect = require("chai").expect; // put your CUT here describe('Splitting a string', function() { it('Input an empty string, return an empty array []', function() { // arrange... var cut = new StringSplitter(); var expectedResult = [] var emptyString = ""; // act... var actualResult = cut.splitString( emptyString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); it('Input one string, return array with one item', function() { // arrange... var cut = new StringSplitter(); var expectedResult = ["java"] var emptyString = "java"; // act... var actualResult = cut.splitString( emptyString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); }); |
...
CUT 2
Code Block |
---|
class StringSplitter { splitString( stringToSplit ) { var result = []; if( stringToSplit.length > 0 ) result.push(stringToSplit); return result; } } |
Phase 3
Test 3
Code Block |
---|
var assert = require("chai").assert; var tempResult = stringToSplit.split( ',' ); expect = require("chai").expect; // put your CUT here describe('Splitting a string', function() { it.skip('Input an empty string, return an empty array []', function() { // arrange... var cut = new StringSplitter(); var expectedResult = [] var emptyString = ""; // act... var actualResult = cut.splitString( emptyString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); it('Input one string, return array with one item', function() { // arrange... var cut = new StringSplitter(); var expectedResult = ["java"] var emptyString = "java"; // act... var actualResult = cut.splitString( emptyString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); it('Input two comma seperated strings, return array with two items', function() { // arrange... var cut = new StringSplitter(); var expectedResult = ["java", "python"] var inputString = "java,python"; // act... var actualResult = cut.splitString( inputString ); console.log( actualResult.length); // assert... assert.equal(actualResult.length, expectedResult.length ); expect(actualResult).to.eql(expectedResult); }); }); |
CUT 3
Code Block |
---|
class StringSplitter { splitString( stringToSplit ) { var result = []; if( stringToSplit.length > 0 ) { var tempResult = stringToSplit.split( ',' ); if( tempResult[0].length > 10 ) result = tempResult; } return result; } } |