我想知道如何正确使用NUnit.首先,我创建了一个单独的Test-Project,它使用我的主项目作为参考.但在那种情况下,我无法测试私有方法.我的猜测是我需要将我的测试代码包含在我的主代码中?! - 这似乎不是正确的方法.(我不喜欢在其中加载代码的代码.)
如何使用NUnit测试私有方法?
我想定义私有和受保护的公共.
#define private public
#define protected public
Run Code Online (Sandbox Code Playgroud)
这在C++中是安全的吗?
在开发单元测试时,访问私有成员以检查类的内部状态可能是必要的.有时getter和setter函数不可用,有时它们不公开.
处理它的第一种方法是,编写预处理器定义写入publis而不是private和protected.
#define protected public
#define private public
Run Code Online (Sandbox Code Playgroud)
第二种方法是让测试类成为类的朋友.
class test_foo {
};
class foo {
private:
int mem;
friend class test_foo;
};
Run Code Online (Sandbox Code Playgroud)
第三种方法是为测试创建公共接口.
class foo {
#if defined FOO_UNIT_TEST
public:
int get_mem() const;
#endif
private:
int mem;
};
Run Code Online (Sandbox Code Playgroud)
除了这些方法之外还有其他方法吗?每种方法都有利有弊.哪一个可以被认为是最佳实践?
谢谢.