我是靠谱客的博主 背后胡萝卜,这篇文章主要介绍c#测试ftp连通性_测试属性#8 –真实性,现在分享给大家,希望可以做个参考。

c#测试ftp连通性

3611536356_255a22b32d_zps2d00fe57 我要感谢史蒂文·科尔伯特(Steven Colbert)创造了一个我可以在标题中使用的词。 没有他,如果几分钟后我不放弃寻找更好的单词,这一切将仍然可能。

测试是关于信任的。 我们希望它们是可靠的。 可靠的测试告诉我们,通过时一切正常,而通过时失败。

问题在于生活不是黑白的,测试也不只是绿色和红色。 测试可以给出假阳性(不应该通过则失败)或假阴性(不应该通过则通过)结果。 我们之前曾遇到过误报测试-这些测试是脆弱的,依赖测试。

通过而不是失败的是有问题的。 他们不仅向我们隐瞒了真实情况,而且不仅在这些测试中而且在其他测试中削弱了我们的信任。 毕竟,当我们发现有问题的测试时,谁能说我们编写的其他测试也没有问题?

真实性( 我们认为测试可靠的程度)开始发挥作用。

依赖注入示例

或者更确切地说,注入一个依赖的例子。

假设我们有一个经过测试的代码使用的服务(或第三方库)。 速度慢,通讯不可靠。 所有给服务起名的事物。 我们的自然趋势是在测试中嘲笑服务。 通过模拟服务,我们可以隔离测试我们的代码。

因此,在我们的案例中,我们经过测试的Hotel类使用Service:

复制代码
1
2
3
4
5
6
7
8
public class Hotel { public string GetServiceName(Service service) { var result = service.GetName(); return "Name: " + result; } }

为了知道该方法是否正常工作,我们将编写以下测试:

复制代码
1
2
3
4
5
6
7
8
[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,但是,我还在通过!”。

真相在那里

模拟是通过说明性测试阻碍真实行为的示例,但这仅是示例。 当我们测试一些情况但不涵盖其他情况时,可能会发生这种情况。

这是我最喜欢的例子之一。 这里有什么隐藏的测试用例?

复制代码
1
2
3
4
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部