概述
c#测试ftp连通性
我要感谢史蒂文·科尔伯特(Steven Colbert)创造了一个我可以在标题中使用的词。 没有他,如果几分钟后我不放弃寻找更好的单词,这一切将仍然可能。
测试是关于信任的。 我们希望它们是可靠的。 可靠的测试告诉我们,通过时一切正常,而通过时失败。
问题在于生活不是黑白的,测试也不只是绿色和红色。 测试可以给出假阳性(不应该通过则失败)或假阴性(不应该通过则通过)结果。 我们之前曾遇到过误报测试-这些测试是脆弱的,依赖测试。
通过而不是失败的是有问题的。 他们不仅向我们隐瞒了真实情况,而且不仅在这些测试中而且在其他测试中削弱了我们的信任。 毕竟,当我们发现有问题的测试时,谁能说我们编写的其他测试也没有问题?
真实性( 我们认为测试可靠的程度)开始发挥作用。
依赖注入示例
或者更确切地说,注入一个依赖的例子。
假设我们有一个经过测试的代码使用的服务(或第三方库)。 速度慢,通讯不可靠。 所有给服务起名的事物。 我们的自然趋势是在测试中嘲笑服务。 通过模拟服务,我们可以隔离测试我们的代码。
因此,在我们的案例中,我们经过测试的Hotel类使用Service:
public class Hotel
{
public string GetServiceName(Service service)
{
var result = service.GetName();
return "Name: " + result;
}
}
为了知道该方法是否正常工作,我们将编写以下测试:
[TestMethod]public void GetServiceName_RoomService_NameIsRoom()
{
var fakeService = A.Fake<Service>();
A.CallTo(() => fakeService.GetName()).Returns("Room");
var hotel = new Hotel();
Assert.AreEqual("Name: Room", hotel.GetServiceName(fakeService));
}
一切都是古怪的。
在生产中,直到服务断开连接并引发异常。 我们的测试显示“ Bbb,但是,我还在通过!”。
真相在那里
模拟是通过说明性测试阻碍真实行为的示例,但这仅是示例。 当我们测试一些情况但不涵盖其他情况时,可能会发生这种情况。
这是我最喜欢的例子之一。 这里有什么隐藏的测试用例?
public int Increment()
{
return counter++;
}
测试是代码示例。 它们以我们“什么地方可能出问题?”的想象力发挥作用。 就像溢出一样,在最后一种情况下。
就像区别一样 ,真理本身不能被检验。 该示例有效,但隐藏了我们需要对其进行另一个测试的情况。 我们需要查看测试用例的集合,看看是否涵盖了所有内容。
解决方案不必是相同类型的测试。 我们可以对服务满意路径进行单元测试,并进行涵盖断开情况的端到端测试。 当然,如果您首先可以想到其他情况,为什么不对它们进行单元测试呢?
因此,要提高您的真实性:
- 思想 。 在编写测试之前,如果您正在执行TDD –代码,请编写测试用例列表。 在笔记本,白板或我最喜欢的笔记本上:空测试。
- 反映 。 通常,当我们编写一些测试时,会想到新的测试用例。 具有代码的可视图像可以帮助您考虑其他情况。
- 当心模拟 。 我们使用模拟来规定特定情况下的依赖行为。 您进行的每个模拟都可能是潜在的失败点,因此请考虑其他要模拟的情况。
- 评论。 成对进行。 四只眼比两只好。
争取更高的真实性。 对测试的更高信任将帮助您睡得更好。
翻译自: https://www.javacodegeeks.com/2014/08/test-attribute-8-truthiness.html
c#测试ftp连通性
最后
以上就是背后胡萝卜为你收集整理的c#测试ftp连通性_测试属性#8 –真实性的全部内容,希望文章能够帮你解决c#测试ftp连通性_测试属性#8 –真实性所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复