gpt4 book ai didi

c++ - 测试依赖于另一个类的静态函数的类

转载 作者:太空狗 更新时间:2023-10-29 22:52:33 24 4
gpt4 key购买 nike

我目前正在开发一个使用另一个只有静态函数的类的类。

一切正常,直到我尝试测试我的类(class)。

这是问题的一个简单代码示例:

class A {
static String getSometing() {
return String("Something: ") + heavyCalculation().asString();
}
}

class B {
B() {}
~B() {}
String runSomething(const String& name) {
if(name.equals("something")) {
return A::getSomething();
} else {
return "Invalid name!";
}
}
}

假设 A 类工作正常(并且已经通过单元测试进行了测试),我想检查 B 类中的 runSomething 函数。

我的第一个选择是为内部类创建模拟(在此示例中为 A 类),但在那种情况下,它不会给我任何可从 A 继承的东西,因为它只有静态函数。

我的第二个选择是将对 A 类的调用封装在 B 中的私有(private)函数中,这样我就可以控制它们的返回值(尽管选择这个选项会使好的事情变得有点复杂)。

我的问题是:是否有比我当前的选项更好的方法来测试依赖于静态类/函数的 C++ 类?

提前致谢

塔尔。

最佳答案

通过将对静态函数的引用(在我的例子中是外部依赖项)重构为新的私有(private)函数并在测试 stub 上覆盖它们,我在类似情况下的单元测试中取得了成功,所以我可以推荐这种方法

如果重构的函数保持私有(private),它们不应该对设计的复杂性产生很大影响,它们应该足够小,不会对代码的可读性产生负面影响。

关于c++ - 测试依赖于另一个类的静态函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073836/

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