单元测试

为了为glazed-donutrepo 编写单元测试,我决定选择xUnit作为我的单元测试框架,因为这是我以前使用过的东西。此外,在浏览了其他可用于 C# 的单元测试框架后,例如NUnit和MSTest,我最喜欢 xUnit 的语法,它对我来说似乎更加一致和直接。

xUnit是用于 C#、F# 和 Visual Basic 的开源测试框架。它允许您编写单元测试。

如何在您的项目中设置xUnit?

要在您的项目中设置 xUnit,您只需执行以下简单步骤(在 Visual Studio 中):

  1. 右键单击您的解决方案并选择“添加新项目”。

2.选择“xUnit测试项目”:

[图像描述](https://res.cloudinary.com/practicaldev/image/fetch/s--h3wKtTdl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/svm6ymh5o2514ev3mkoz.png)3\。包括对您的项目解决方案的引用(右键单击您的单元测试解决方案 --> 添加 --> 项目引用 --> 选中您要引用的解决方案 --> 单击确定)

这次我学到了关于单元测试的一件事:

我了解到测试不应该测试我的代码如何工作,他们应该测试我的代码应该如何工作。在这个过程中,我试图测试我的代码在做什么,并在此基础上进行单元测试。我们不想测试我们的代码如何工作的原因是因为如果我们试图在单元测试中模仿方法的功能,代码可能有错误或一些我们可能无法发现的意外行为。

例如,假设您有一个接受字符串的方法,并且只涵盖该字符串有效的场景。在编写单元测试以涵盖负面情况时,您注意到如果有人传递了一个空值,您的代码将不知道如何处理它,因为它没有涵盖这种情况。与其在单元测试中不知道该案例返回什么或跳过编写否定单元测试,不如修复代码以实际覆盖该场景,然后查看您的方法是否通过该单元测试。

我会推荐编写单元测试吗?

- 是的!

根据我在单元测试方面的经验,我会说我会在我将从事的项目中进行测试,即使这样做可能很烦人,因为单元测试告诉我们以下内容:

  • 它记录了我的程序 - 如果有人意外更改了您的函数中的某些内容,您现在会这样做,因为该函数的单元测试会失败。

  • 它告诉我们所有功能都按预期工作 - 因为当我们编写单元测试时,我们会考虑正面和负面的场景,并且我们确信我们的代码涵盖了所有内容。

  • 它减少了代码中潜在/现有错误的数量

总之,我认为单元测试对任何人的代码都是一个很好的补充。掌握编写它们肯定需要大量练习,但从长远来看,这是值得的。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐