gpt4 book ai didi

c# - 在 C# 中自动测试 "untestable"应用程序。单元/集成/功能/系统测试 - 如何?

转载 作者:行者123 更新时间:2023-11-30 19:46:49 27 4
gpt4 key购买 nike

我很难将自动化测试引入特定应用程序。我发现的大部分资料都集中在单元测试上。由于以下几个原因,这对该应用程序没有帮助:

  • 应用程序是多层的
  • 编写时并没有考虑到测试(很多单例持有应用程序级设置,对象不可模拟,很多地方都需要“状态”)
  • 应用程序非常以数据为中心
  • 大多数“功能流程”都是端到端的(客户端 -> 服务器 -> 数据库)

考虑这个场景:

var item = server.ReadItem(100);
var item2 = server.ReadItem(200);
client.SomethingInteresting(item1, item2);
server.SomethingInteresting(item1, item2);

服务器调用的定义:

Server::SomethingInteresting(Item item1, Item item2)
{
// Semi-interesting things before going to the server.

// Possibly stored procedure call doing some calculation
database.SomethingInteresting(item1, item2);
}

如何为此设置一些自动化测试,其中有客户端交互、服务器交互然后数据库交互?

我明白这不构成一个“单位”。这可能是功能测试的一个例子。

这是我的问题:

  • 像这样测试应用程序是失败的原因吗?
  • 可以使用 nUnit 或 MS Test 之类的工具来完成吗?
  • 此测试的“设置”是否会强制启动和登录完整的应用程序?
  • 我是否会简单地从数据库中重新读取 item1 和 item2 以验证它们是否已正确写入?
  • 你们对如何开始这个艰巨的过程有什么建议吗?

如有任何帮助,我们将不胜感激。

最佳答案

如果这是贵公司非常重要的应用程序,预计会持续数年,那么我建议从小处着手。开始寻找您可以测试的小片段,或者通过对代码进行小的修改来测试以使其可测试。

这并不理想,但在一年左右的时间里,您可能会比现在好得多。

关于c# - 在 C# 中自动测试 "untestable"应用程序。单元/集成/功能/系统测试 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830082/

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