我想为我的C++应用程序进行单元测试.
测试班级私人成员的正确形式是什么?创建一个测试私有成员,使用派生类或其他技巧的朋友类?
测试API使用哪种技术?
C++有什么好的基准框架吗?
我知道Hayai和Celero,但我想知道是否有更好的工具.
有人建议使用C++的基准框架吗?
假设有这个界面:
class A{
public:
virtual foo()=0;
};
Run Code Online (Sandbox Code Playgroud)
以及B实现此接口的类:
class B:public A{
public:
virtual foo(){} //Foo implemented by B
}
Run Code Online (Sandbox Code Playgroud)
最后,一个C具有类A和B基类的类:
Class C : public A, public B {
};
Run Code Online (Sandbox Code Playgroud)
我的问题是,有一种方法可以告诉编译器,实现foo是来自类的实现B而不进行显式调用B::foo()?
我想使用具体类提供的实现从接口实现纯虚方法,而不必从具体类显式调用该方法。例:
class InterfaceA{
public:
virtual void foo() = 0;
};
class InterfaceB:public InterfaceA{
public:
virtual void bar() = 0;
};
class ConcreteA : public InterfaceA{
public:
virtual void foo(){}//implements foo() from interface
};
class ConcreteAB: public InterfaceB, public ConcreteA{
public:
virtual void bar(){}//implements bar() from interface
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器要求在ConcreteAB类中实现foo(),因为InterfaceB没有实现它,并且它是从InterfaceA继承的。
有一种方法可以告诉编译器使用来自ConcreteA的实现,而无需使用调用ConcreteA :: foo()的包装器?
在C++中使用重载构造函数反序列化对象是一个好习惯,或者最好创建一个成员函数deserialize(std :: istream&file)?
c++ ×5
pure-virtual ×2
benchmarking ×1
frameworks ×1
inheritance ×1
interface ×1
testing ×1
unit-testing ×1