.net - 有关测试或单元测试的一些基本问题

标签 .net unit-testing methodology

所以通常我的应用程序非常小,我的测试框架只是一个控制台项目。 。我使用静态方法在其中添加类并测试我的代码。我发现这种方法非常简单且很好(特别是因为您可以看到交付的输出)

我现在在 Visual Studio 中有一个不错的小测试项目,所以我对如何测试看起来不像单元的东西有点困惑,例如:

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

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

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

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

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

抱歉,我有点太无知了! =P
谢谢

更新


还想添加:在应用程序本身中运行良好但从外部代码调用时会失败的测试怎么样? (这种情况在我身上发生过几次)你们也发生过这种情况和/或者这是否意味着糟糕的设计?

最佳答案

如果您的测试取决于您无法控制的环境,那么您应该做的第一件事就是让它们处于您的控制之下:-)

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

非确定性测试与 bean 奶牛一样有用。它可能似乎有效,但不知何故结果并不如您预期的那么令人满意。

关于.net - 有关测试或单元测试的一些基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243363/

相关文章:

c# - ComDefaultInterface 对 COM Callable Wrapper 有什么用处吗?

c# - .Net Core 和 Microsoft.Web.Administration

php - 你如何调试 php "Out of Memory"问题?

javascript - 为什么我的数组在方法调用 live 时更新但在单元测试中不更新?

agile - Scrum 和项目管理可以共存吗?

methodology - RUP(合理的统一过程)

c# - 如何从两个 List<string> 中获取不同的值?

c# - System.IO.Ports.SerialPort 和多线程

c# - 测试依赖于企业库的代码,即使它不提供接口(interface)?

php - 如何在 PHPUnit 测试中覆盖 Laravel 的异常处理程序?