6
有沒有一種很好的方法來使用OpenGL命令對函數或類進行單元測試?OpenGL如何進行單元測試?
對於C++,我知道我可以做類模板,並通過一類做直接的OpenGL調用:
namespace myNamespace
{
struct RealOpenglCall
{
static inline void glVertex2fv(const GLfloat * v)
{ ::glVertex2fv(v); }
};
template< typename T >
class SomeRendering
{
public:
SomeRendering() : v()
{
// set v
}
void Draw()
{
T::glVertex2fv(v);
}
GLfloat v[4];
};
}
在C和C++中,我可以通過函數指針調用OpenGL函數的函數(然後單元測試傳遞指向模擬函數的指針)。
我也可以鏈接不同的庫(而不是opengl),但這聽起來像一個很大的複雜。
那麼,有什麼其他技術來調用opengl函數的單元測試代碼?
您可以使用單元測試數據並使模擬函數轉儲該數據以進行比較,如果它與預期輸出匹配則傳遞單元測試。 – datenwolf 2011-03-11 09:38:52
絕對。 :-) – 2011-03-11 09:42:58
@datenwolf然後它不是一個單元測試,因爲它需要讀取磁盤並訪問真實數據。這會減慢單元測試 – 2011-03-11 13:43:48