gpt4 book ai didi

unit-testing - 依赖注入(inject)和单元测试此构造函数

转载 作者:行者123 更新时间:2023-12-02 17:54:00 26 4
gpt4 key购买 nike

我在类中有一个构造函数和一个属性:

private IMyCollectionObjects _myCollectionObjects;

public MyClassConstructor(string message)
{
_myCollectionObjects = MyCollection.GetCollectionObejects(message);
}
  1. 请您提供尽可能详细的信息,帮助我了解如何单元测试此构造函数和 GetCollectionObjects 方法?

  2. 如何完全解耦 类(class)?你可以给出答案 使用任何 IoC,我想要 理解这个概念。

谢谢。

最佳答案

对静态成员(例如 GetCollectionObjects)的依赖很难测试,因为您无法在运行时替换其实现。这意味着您无法将 MyClassConstructor 的实例与 GetCollectionObjects 的实现细节完全隔离。如果不隔离测试目标,就不能真正认为是单元测试。

See here for further discussion of static dependencies.

您可以重构此代码以完全解耦(从而完全可测试):

private readonly IMyCollectionObjects _myCollectionObjects;

public MyClassConstructor(IMyCollectionObjects myCollectionObjects)
{
_myCollectionObjects = myCollectionObjects;
}

这会冒出如何直接从 MyClassConstructor 将消息转换为集合的知识,从而使类更简单、更具内聚性和更少的耦合。

关于unit-testing - 依赖注入(inject)和单元测试此构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341078/

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