如何撰写用例&用于绑定gridview的测试驱动开发示例

时间:2011-03-09 20:07:28

标签: asp.net vb.net unit-testing tdd

我仍在尝试理解和使用用例和测试驱动开发,但很难跨越这条线。我希望有人可以提供一个很好的例子,说明如何使用测试驱动开发来设置数据源和/或数据绑定gridview。

这是我的伪方法。

  1. 创建一个aspx页面并向其添加gridview控件。
  2. 在后面的代码中创建一个名为BindGrid(datacollection,gridview)的方法,它将集合和gridview传递给我网站外的类中的方法,这样我就可以实际为该方法编写单元测试,并返回数据绑定gridview。
  3. 在BindGrid方法上,我右键单击并选择“创建单元测试”,为我创建一个新的测试项目,并为我的BindGrid()方法进行轮廓测试。
  4. 现在我想我可以编写一些测试,例如:testTrueDataCollectionBindstoGridView()来查看集合数据类型是否实际绑定?我不确定要写的其他测试吗?
  5. 这就是我目前的理解,我会去TDD和Unit测试我的例子。感觉非常笨拙,我希望得到一些关于我做错的反馈,以及改进的想法。

    由于

    更新

    我决定尝试简化我的问题,以期获得更多想法。

    您如何为绑定到控件的集合编写测试?例如,我想将字典绑定到下拉列表。我应该写什么测试,我将如何编写它们?

    由于

3 个答案:

答案 0 :(得分:2)

在某种程度上,您的问题描述了为什么创建了ASP.NET MVC框架。对ASP.NET Web Forms模型(GridView是其中的一部分)编写测试非常困难。此外,您似乎接近编写测试来测试Framework本身,而不是您正在编写的代码。如果你走得太远,那么你将永远地编写测试并且永远不会发布任何代码。在这种情况下,分离出用于生成集合的任何代码会更有效率,这些代码是您绑定到GridView并且通过创建该场景(尤其是任何异常条件和可能的条件逻辑)来测试场景,并相信框架正确地将数据绑定到网格。如果数据生成方法可以产生您想要在UI级别处理的任何异常,请尝试测试代码如何处理它,但同样,这是MVC框架有用的地方,b / c测试代码非常困难需要在Web窗体生命周期中运行。

答案 1 :(得分:0)

简单来说,因为我现在主要做Java而不是.NET的东西。我发现TDD一开始对大多数人来说确实感觉很笨拙,但给它一些时间,看看你是否喜欢它。

就编写测试而言,采用这种通用方法。创建一个要测试的方法,但没有任何正文。创建一个练习某些特定​​行为的测试,并保持简单。运行测试,它应该失败(运行红色,假设您的IDE执行此操作)。然后,编写使测试成功的代码行或几行代码(变为绿色)。现在,写另一个测试,并重复。如果您有条件,请确保测试所有路径。也就是说,写一个路径,然后写另一个路径,为每个路径写一个测试。

如果您的方法按照您想要的方式运行,您现在可以根据自己的内容进行重构,因为测试将始终在那里检查您的工作。看看这个方法。也许有4-5行组合在一起,可以被拉成一个方法。给这个方法一个好名字,这样当你阅读调用方法时,这个名字就会告诉你在没有钻进的情况下会发生什么。还有其他可能的重构,特别是因为你可以看到你可以利用的设计模式。 / p>

确保在进行重构时经常重新运行测试。

答案 2 :(得分:0)

TDD是关于添加功能。它鼓励UI组件中的最小逻辑 - 大部分它们应该是执行实际工作的代码的纯代理,您可以测试。

我建议,为了学习TDD,不要费心编写关于UI行为的测试(例如将数据绑定到控件)。

为了有效地学习TDD,我认为一个好的起点是尝试一些代码katas。代码kata是一个小问题,你反复做。您开发的解决方案并不重要 - 从获得解决方案的过程中学习。问题就是10次,并且每次都有意为解决方案选择不同的设计。 TDD是关于这个过程的。

这里有一个katas列表:http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue

罗马数字kata是一个很好的,但只选择一个吸引你的。