gpt4 book ai didi

testing - 有关使用 NUnit 测试全部功能的书籍或文章

转载 作者:行者123 更新时间:2023-11-28 21:03:20 24 4
gpt4 key购买 nike

是否有书籍或文章向您展示如何使用 NUnit 来测试程序的全部功能?是否有此类测试的名称?

这不同于通常使用 NUnit 进行单元测试,在这种情况下您测试单个类。这类似于验收测试,不同之处在于它是由开发人员编写的,用于辨别程序是否按照他们的解释作为客户希望程序执行的操作。我不需要它让非程序员可读,也不需要为非程序员生成可读的规范。

我遇到的问题是保持此功能测试代码的可维护性。我需要帮助来组织我的功能测试代码。我还需要帮助组织程序代码以这种方式驱动。我很难在仍然拥有良好代码设计的情况下向程序发出命令。

目前我有一个名为 Program 的类,其中包含一个名为 Run 的公共(public)方法。对于每个测试,我都像用户一样从程序的开头开始,然后到达程序中特定功能可用的所需点。然后我以某种方式使用该功能并验证它是否符合我的要求。我有一个名为 Commands 的类,它将程序的不同功能公开为方法。 Commands 对象的一个​​实例被传递给程序,它最终被传递给每个 Form 类。这些将订阅命令类的方法调用的命令类的事件(每个方法一个匹配事件)。通过指向使用用户界面的特定部分时调用的方法来订阅事件,从而允许整个程序由我的测试驱动。如果您为当前未订阅的事件调用 Command 对象上的方法,则会抛出 FeatureMissingException。

所有这些都有效,但我不喜欢 Command 类。它变得太大,责任太多(程序的每个功能)。 Commands 类也是一个依赖项磁铁(所有 Form 类都有它的一个实例,但只订阅表示可以通过其 UI 激活的功能的事件)。

最佳答案

它叫integration testing .集成测试更难自动化,而且通常是手工完成的。许多更简单的测试仍然可以使用 NUnit 来完成——你不需要做任何特别的事情,只是不要使用 Mocks(就像你应该为单元测试做的那样)这样你就可以测试模块实际上是如何组合在一起的。

Context/specification是组织这些测试的好方法。

关于testing - 有关使用 NUnit 测试全部功能的书籍或文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com