Empty cells should display the value of a field or property. If a cell contains "blank" or "null" then treat it as blank ("") or truly null.


Empty cells are automatically filled with the value of the field or property, and no check is performed. To explicitly set a value to empty string ("") or null, or to check for empty string or null, use the "blank" and "null" keywords.

This works in column fixtures...
when test is

story test fixture
checktest result
string fixture
field field field? field? field?
null   null blank joe
blank   null blank joe
joe   null blank joe
string fixture
field field field? field? field?
null   null null blank expected
null actual
joe expected
null actual
blank   blank null expected
actual
blank joe expected
actual
joe   joe null expected
joe actual
blank expected
joe actual
joe
string fixture
field field field? field? field?
null   null blank joe
blank   null blank joe
joe   null blank joe
then result is
string fixture
field field field? field? field?
null   null null blank expected
null actual
joe expected
null actual
blank   blank null expected
actual
blank joe expected
actual
joe   joe null expected
joe actual
blank expected
joe actual
joe

...row fixtures...
when test is

story test fixture
checktest result
blank and null keyword row fixture
field property get field property get field property get
null null null blank blank blank Joe Joe Joe
blank blank blank Joe Joe Joe null null null
Joe Joe Joe null null null blank blank blank
blank and null keyword row fixture
field property get field property get field property get
null null null blank expected
null actual
blank expected
null actual
blank expected
null actual
Joe expected
null actual
Joe expected
null actual
Joe expected
null actual
blank blank blank Joe expected
actual
Joe expected
actual
Joe expected
actual
null expected
actual
null expected
actual
null expected
actual
Joe Joe Joe null expected
Joe actual
null expected
Joe actual
null expected
Joe actual
blank expected
Joe actual
blank expected
Joe actual
blank expected
Joe actual
blank and null keyword row fixture
field property get field property get field property get
null null null blank blank blank Joe Joe Joe
blank blank blank Joe Joe Joe null null null
Joe Joe Joe null null null blank blank blank
then result is
blank and null keyword row fixture
field property get field property get field property get
null null null blank expected
null actual
blank expected
null actual
blank expected
null actual
Joe expected
null actual
Joe expected
null actual
Joe expected
null actual
blank blank blank Joe expected
actual
Joe expected
actual
Joe expected
actual
null expected
actual
null expected
actual
null expected
actual
Joe Joe Joe null expected
Joe actual
null expected
Joe actual
null expected
Joe actual
blank expected
Joe actual
blank expected
Joe actual
blank expected
Joe actual

public class BlankAndNullKeywordRowFixture : RowFixture
{
	public override object[] Query()
	{
		StringFixture fixture1 = new StringFixture();
		fixture1.Field = null;
		fixture1.Property = null;
		fixture1.Set(null);
		StringFixture fixture2 = new StringFixture();
		fixture2.Field = "";
		fixture2.Property = "";
		fixture2.Set("");
		StringFixture fixture3 = new StringFixture();
		fixture3.Field = "Joe";
		fixture3.Property = "Joe";
		fixture3.Set("Joe");
		return new object[]{fixture1, fixture2, fixture3};
	}

	public override Type GetTargetClass()
	{
		return typeof(StringFixture);
	}
}


...and action fixtures...
when test is

story test fixture
checktest result
action fixture
start string fixture
enter field null
check field  
check field null
check field blank
check field Joe
action fixture
start string fixture
enter field null
check field   null
check field null
check field blank expected
null actual
check field Joe expected
null actual
action fixture
start string fixture
enter field null
check field  
check field null
check field blank
check field Joe
then result is
action fixture
start string fixture
enter field null
check field   null
check field null
check field blank expected
null actual
check field Joe expected
null actual


when test is

story test fixture
checktest result
action fixture
start string fixture
enter field blank
check field  
check field null
check field blank
check field Joe
action fixture
start string fixture
enter field blank
check field   blank
check field null expected
actual
check field blank
check field Joe expected
actual
action fixture
start string fixture
enter field blank
check field  
check field null
check field blank
check field Joe
then result is
action fixture
start string fixture
enter field blank
check field   blank
check field null expected
actual
check field blank
check field Joe expected
actual


when test is

story test fixture
checktest result
action fixture
start string fixture
enter field Joe
check field  
check field null
check field blank
check field Joe
action fixture
start string fixture
enter field Joe
check field   Joe
check field null expected
Joe actual
check field blank expected
Joe actual
check field Joe
action fixture
start string fixture
enter field Joe
check field  
check field null
check field blank
check field Joe
then result is
action fixture
start string fixture
enter field Joe
check field   Joe
check field null expected
Joe actual
check field blank expected
Joe actual
check field Joe