好吧,尝试我的第一次TDD尝试,现在是时候反映一下 并得到一些指导,因为它不是我成功。 该解决方案部分采用现有框架制作,可能使得TDD不太理想。似乎给我最大的问题是视图和控制器之间的交互。我会 举几个简单的例子,并希望有人会告诉我什么我 可以做得更好的错误。用户界面和TDD babysteps
每个视图的接口从基站接口继承,与这些 构件(有更多):
公共接口IVIEW
{
空隙ShowField(串fieldId)
空隙HideField(串fieldId)
空隙SetFieldVisibility(串fieldId,布尔可见)
空隙DisableField(串fieldId)
空隙ShowValidationError(串fieldId)
...
}
的具体视图界面,随后将添加成员每个 场这样 公共接口IMyView:IVIEW
{
字符串名称{;组; }
string NameFieldID {get; }
...
}
您怎么看待这个问题?从一个通用接口继承一个 好的或坏主意? 关于给我带来麻烦的事情之一是,我第一次使用了 ShowField和HideField,并发现我宁愿使用 SetFieldVisiblity。我没有改变方法的结果,但我不得不更新我的测试,这似乎应该是必要的。有多种方法做同样的事情,一件坏事?一方面这两种方法都适用于不同的情况,但它们确实使界面变得混乱,使得界面比其严格的界面更加复杂。
没有通用接口的设计会更好吗?这将删除 fieldID,我不是为什么,但我认为fieldID的东西闻起来,我 可能是错的。 我只会在需要时制作显示和隐藏方法,即如果 它们将被控制器调用。这将是一个不太通用的 解决方案,在视图中需要更多的代码,但控制器代码 会更简单一些。
所以一个视图界面可能是这样的: 公共接口IMyView
{
无效ShowName()
无效HideName()
字符串名称{;组; }
int Age {get;组; }
}
您对“现有框架”有何意义?单元测试框架? – 2009-02-02 14:18:01