gpt4 book ai didi

unit-testing - 使代码可单元测试的最佳方法

转载 作者:行者123 更新时间:2023-12-03 10:28:32 26 4
gpt4 key购买 nike

我正在使用 MVVM 架构并在我的应用程序中使用 prism。以下是我用来设置 IresourceManager 的那种代码。请让我知道这种做法是否良好,或者是否应该使用依赖注入(inject)并在构造函数中每次都将 Resourcemanager 作为参数传递。

public SapUploadScriptInfo(XDocument scriptDoc) : this()
{
this.resourceManager = ServiceLocator.Current.GetInstance<IResourceManagerService>();
this.scriptDoc = scriptDoc;
this.CreateFromXml(scriptDoc);
}

现在为了对类进行单元测试,这是最好的方法 1. 保持原样并在其他地方(再次使用它)对这个方法进行单元测试 2. 使用 DI 方法。

最佳答案

Now in order to unit test the class which is the best way 1. keep it as it is and unit test this method somewhere else (where it is being used again) > 2. using DI approach.



如果您尝试在其他地方测试此方法(作为另一个函数的一部分然后调用它),那么会有几个问题:
  • 首先,您不再真正进行单元测试了。如果您正在测试函数调用的结果,那么您无意中也在测试您的 IResourcemanager 类
  • 其次,测试用例管理将成为一个问题。因此,您希望清楚每个功能的测试在哪里。但是现在你有一个案例,你的测试实际上是在其他一些碰巧使用这个函数的类中。

  • 因此,我建议使用依赖注入(inject)方法。您正在尝试做什么,并且如果您必须在运行测试套件时传入它的实例,那么模拟 IResourcemanager 会更容易。

    关于unit-testing - 使代码可单元测试的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670411/

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