gpt4 book ai didi

c# - 测试 spy 实现之间的差异

转载 作者:行者123 更新时间:2023-11-28 21:34:35 24 4
gpt4 key购买 nike

我在定义这两个类是哪种测试替身时遇到了一些麻烦。它们都包含(基本)行为。

它们的区别在于第一个在真实上下文中不会运行,而第二个会(它基本上是一个什么都不做的类,但它会工作!第二个会崩溃)。

它们看起来都像 Test Spies大部头书。它们都提供了一种方法来获取是否调用了 Run() 方法。 (这就是这些类存在的原因!)。

我不能在所有上下文中都使用第二个,因为我不能在所有上下文中只使用第一个。

我可以将它们重构为一个,但在阅读代码时可能会使事情变得不那么清晰。

class FilterTestSpy : IFilter {
private bool hasBeenRan = false;

...

public bool HasBeenRan { get { return hasBeenRan; } }

public void Run() {
hasBeenRan = true;
}
}

class FilterTestSpy2: IFilter {
private bool hasBeenRan = false;

...

public bool HasBeenRan { get { return hasBeenRan; } }

public void Run() {
...some logic...
hasBeenRan = true;
}
}

我知道有模拟框架,blablabla,这不是我在这里要问的。

谢谢!

最佳答案

您能否在 Run() 方法中创建一个委托(delegate)给的策略?这样你就可以只有一个 spy 类,具有单一的职责,即判断该方法是否被调用。因此,对于不同的上下文,您可以注入(inject)不同的策略。

关于c# - 测试 spy 实现之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582392/

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