关于测试或单元测试的一些基本问题

时间:2010-11-22 07:50:36

标签: .net unit-testing methodology

通常我的应用程序非常小,我的测试框架只是一个控制台项目。 。我用静态方法在那里添加类并测试我的代码。我发现这种方法非常简单明了(特别是因为你可以看到输出的输出)

我现在在visual studio中有一个很好的小测试项目,所以我对你如何测试看起来不像单元的东西感到有些困惑,例如:

Purchase.LoadAllAsync()//finished loading on the loadcomplete event

我会为此写什么样的单元测试?特别是因为这会根据数据库中的内容而改变吗?

我在SO上做了一些侦察并发现了这个: When is a Test not a Unit-test?

让我更加困惑的是,如果测试不是单元测试,你会如何测试?

有时我通常只是在主窗体中编写一个小测试函数,或者在silverlight中编写主页,然后将其删除。但我想使用单元测试是因为测试需要留在那里以便你可以重复使用它们吗?

对不起,如果我有点太无知了! = P
感谢

更新


还想补充一下:在应用程序本身运行良好的测试怎么样,但是从外部代码调用它时会失败。 (这种情况在我身上发生了几次)你们也会碰巧和/或是否意味着糟糕的设计?

1 个答案:

答案 0 :(得分:5)

如果您的测试取决于您无法控制的环境,那么首先你应该做的就是让它们在你的控制之下: - )

换句话说,您的测试应使用测试数据库,并且作为设置的一部分,它应该为空,然后使用已知的可预测数据填充该数据库。或者,您可以放入存根例程并完全避免数据库访问。

非确定性测试与大豆奶牛一样有用。它似乎似乎正在起作用但不知何故结果并不像你预期的那样令人满意。