gpt4 book ai didi

c# - 当类依赖于基类的 protected 属性时的单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:01 24 4
gpt4 key购买 nike

public class MyBaseClass
{
protected void OnSomeEvent(EventContext context)
{
SomeType = _someService.DoSomeLogic(context);
}

public SomeType SomeType { get; private set; }
}

MyBaseClass 会在流程管道中触发事件时使用一些魔法来初始化公共(public)属性值。

public class MyClass : MyBaseClass
{
public string Foo()
{
if (SomeType.SomeLogic())
throw new InvalidOpertaionException();

return "huzzah";
}
}

其他类中的流程取决于正在初始化的SomeType

如何对 MyClass.Foo() 进行单元测试?

[TestMethod]
public void Foo_ReturnsHuzzah()
{
var result = new MyClass().Foo();
Assert.IsHuzzah(result);
}

最佳答案

_someService 看起来像一个外部依赖。我会使用依赖注入(inject)来使该外部依赖项可注入(inject),然后使用模拟框架注入(inject)一些东西来返回状态,这将使您的其余测试通过。

然后运行最终调用 OnSomeEvent 的公共(public)方法,您可以测试整个处理链

关于c# - 当类依赖于基类的 protected 属性时的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607951/

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