初心者のためのC#プログラミング本格入門95 - やりたい事を分けて考えよう
前回のテスト、および実装がどの様に間違っているのかを検証しましょう。間違っている事は次のテストプログラムを試せば分かります。
//今回の記事と関係が無いプログラムは省略しています
class SimpleListTest : Test
{
public override void ExecuteAllTest()
{
this.OneElementAdd();
this.CurrentTest();
this.AddElement();
}
public void CurrentTest()
{
base.Execute();
this.target = new SimpleList();
int value = 10;
this.target.Add( value );
int value1 = 20;
this.target.Add( value1 );
if ( this.target.Current != value )
{
string message = "予期せぬ値が返されました。" +
"予想値:" + value +
" 返された値" + this.target.Current;
base.Error( message );
}
}
public void AddElementCheck()
{
base.Execute();
this.target = new SimpleList();
this.target.Reset();
int value = 10;
this.target.Add( value );
if ( this.target[ 0 ] != value )
{
string message = "予期せぬ値が返されました。" +
"予想値:" + value +
" 返された値" + this.target[ 0 ];
base.Error( message );
}
}
}
読みこむデータの位置をResetメソッドで変えたり、追加した後で現在位置にあるデータを取り出したりすると、相互の処理が結びついて予期せぬ結果をもたらしています。これが間違いである事は明白です。データを追加しただけで、読みとるデータが変わったり、読みとるデータを変えただけで正常に追加できなくなったりすると、オブジェクトの利用者を混乱させます。こういった間違いを避けるために、分けて考える姿勢を持ちましょう。実装を意識してテストを作っても間違いを発見できません。また、違う処理を意識して作ると、違う処理の影響が混ざったプログラムが出来上がります。他の物事を考えず、一つの事に集中する姿勢を身につけましょう。