gpt4 book ai didi

c# - 什么是单元测试范围?

转载 作者:行者123 更新时间:2023-11-30 15:45:31 25 4
gpt4 key购买 nike

我相信单元测试的用处,但我真的不理解这些单元测试的规则..

如果我有一个类与另一个类链接

public class MyClass
{
private SecondClass MySecondClass;

public MyClass()
{
this.MySecondClass = new SecondClass ();
}
}

该字段是私有(private)的,Myclass 有一个这样的方法:

    public ThirdClass Get()
{
return this.MySecondClass.Get();
}

我该如何测试??我假设我必须测试 MyClass.get() 方法是否正确调用 MySecondClass.Get()!但我无法模拟 SecondClass 并将其分配给第一个,因为它是一个私有(private)字段。所以我真的很想知道如何测试它。

谢谢

最佳答案

您无法轻松地对此进行单元测试,因为实例化是硬编码的。您可以在可以模拟它的地方使用构造函数注入(inject):

public class MyClass
{
private SecondClass _mySecondClass;

public MyClass(SecondClass mySecondClass)
{
_mySecondClass = mySecondClass;
}

public ThirdClass Get()
{
return _mySecondClass.Get();
}
}

现在在您的单元测试中,您可以提供您喜欢的此类的任何实例。这就是控制反转的原理。类不再负责实例化其依赖项,它是那些传递依赖项的类的使用者。

关于c# - 什么是单元测试范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132845/

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