我们最近开始围绕测试进行讨论。我们想要的一种测试是某种功能或验收测试。希望是减少浪费的开发,并拥有一些自我验证的软文件。我们提出的作为概念证明的例子是构建一个http客户端,我们之所以选择它是因为它可以非常快速地变得非常复杂,如果你不小心,你最终可能会开发几天添加小边缘处理程序等
考虑到这一点,我们坐下来创建了一个功能列表,它将涵盖我们所需要的功能,而不是更多功能。当你看到这个" Spec"它不包括界面抽象或配置之类的东西,实际上一个漂亮的流畅界面会将大部分项目从列表中删除。
所以现在我的提示正在闪烁,我不知道该写些什么。我以前做过单元测试但是我们发现这些对于更大的对象缺乏,或者以更有凝聚力的方式进行测试,你创建了某种场景并验证它是否通过。不要误以为这是对单元测试的打击,我想它更多地与我们有关,而不是单元测试。安美居
我想到了以下几点。
编写一个场景,一个例子如下:
Create a new http request.
This request should should be a GET request.
It should have no body.
It should have reasonable defaults already defined.
实施方案:
var request =
new httpRequest().UsingMethod(HttpMethods.Get)
.WithDefaultHeaders();
我对此表示担忧。一方面它完美无缺。我已经满足了这个场景,我可以添加更多场景来感受其他需求。另一方面,我通常会首先开发出整个东西,然后进行测试,这样我感觉我失去了对功能架构的控制。
我想知道的是:
此类测试是否正常,人们是否使用它,是否有名称?
我是在正确的道路上还是可以在我做出大量的架构假设假设时结束?
在进行此类测试或推荐时,架构适合在哪里。很高兴有一个完成的定义,如上所述(规范已经实现)但是在某个地方某些架构必须正确吗?
最后。我想保持这个工具不可知。我们正在使用C#和xUnit,并且在我们找出基线时真的不想添加任何复杂性。
答案 0 :(得分:0)
这对我来说听起来像是一个组件测试。使用HTTP请求时要考虑的一件事,不仅仅是寻找OK响应,还要进行快速内容检查。如果您期望格式良好的HTML可能会查找出现在静态错误页面上的唯一单词或短语,或者如果您期望的JSON或XML认为正确的响应会看起来像是错误。