Frank:
大家好,不知道有没有人能帮我看看这个有些罗嗦的问题。(在这个列表中我是个新人,如果我的问题不合适请大家原谅。)
简单的说,在使用test-first的时候,我们应该怎么处理枚举变量?
既然,我们不应该在遇到red test之前写任何代码,下面这个例子应该怎么做?
Drink drink = new Drink(DrinkType.Cocktail);
接下来,我应该来写测试验证构造函数:
[Test]
public void Test_Constructor()
{
Drink d= new Drink(DrinkType.Cocktail);
Assert.IsNotNull(d);
}
可是,我是不是应该专门写一个测试来测试这个枚举参数呢?到底应该怎么处理?
Charlie:
你做得似乎有些太快了。事实上,如果是我,我会先写一个这样的构造函数:
Drink d = new Drink();
当然,过一会儿,我可能想要知道这个饮料的类型了,我就写一个测试:
Assert.AreEqual("cocktail", d.DrinkType);或者Assert.AreEqual(DrinkType.Cocktail, d.DrinkType);
这个测试显然不能通过编译,我会写一点点代码,让它通过:
public string DrinkType
{
get{ return "cocktail"; }
}
只有等到我遇到第二种新的饮料类型,我才会需要那个构造函数。
至于你说的对于枚举类型的测试:枚举类型只是一个声明,并不包含真正的代码,所以不需要测试。