gpt4 book ai didi

.net - 如何开始对大型应用程序进行自动化测试?

转载 作者:太空狗 更新时间:2023-10-30 01:57:28 26 4
gpt4 key购买 nike

编辑:感谢 ncie 评论者,我明白了单元测试和自动化测试之间的区别,所以我重命名了主题

环境:.net 2.0,sql server 2005,windows server 2003

我读了这篇文章:

http://www.codeproject.com/KB/tips/convince.aspx

这个人正在谈论如何在不更改所有内容的情况下向现有应用程序添加自动化测试。

不得不说这篇文章真的很棒,让我想试试!

所以我们的系统几乎相同:所有数据都可以通过网络服务访问,因此我们可以轻松地(例如使用 soapui)对这些网络服务进行一些自动化测试。

但是:数据库呢?要做一些自动化测试,我们需要在数据库中有与自动化测试对应的正确数据。

例如,如果我想做一个自动化测试,检查如果客户端名称为空,软件会引发错误,我需要在我的数据库中添加一个名称为空的客户端。

这是我认为我可以做到的:

  • 使用所需的一切(iis、sql server...)创建一个服务器
  • 添加一些内容,使该服务器的日期永远不会改变,这样我就不必在我的自动化测试中更改时间
  • 在我的数据库中添加我进行自动化测试所需的记录

问题:在 10 次自动化测试之后,数据库将变得一团糟,我永远不知道哪条记录是针对哪个自动化测试的。这个想法是为每个表添加一个“TEST_NAME”列,但在我看来它有点脏。

那么你尝试过这种技术吗?您是否使用了一些特定的工具?我的思维方式好吗? (或者至少是一个好的)。

谢谢

编辑:这个线程我得到了 2 -1,我想知道为什么这样我就不会再犯同样的错误了。

最佳答案

如果您的单元测试触及您的持久层,您实际上可能正在做类似于集成测试的事情。你应该做的是在单元测试期间将你的数据库抽象出来,这样你就只测试逻辑而不是实际的持久性介质。这使您可以专注于业务层逻辑。这说起来容易做起来难,因为它取决于数据层的架构。

数据层通常是插入和拉出的简单问题,所以假设您可以将数据层抽象为如下接口(interface):

interface IRepository
{
GetModel(id);
SaveModel(model);
}

然后在您的单元测试中可以使用此接口(interface) stub /模拟您的数据层。通过这种方式,您可以告诉数据库的 stub 返回您想要的任何值,并且您可以编写一个测试,以在发生这种情况时评估预期的行为。

关于.net - 如何开始对大型应用程序进行自动化测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4659714/

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