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

概述

c#测试ftp连通性

3611536356_255a22b32d_zps2d00fe57 我要感谢史蒂文·科尔伯特(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 –真实性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部