我想测试编写在Visual Studio本机单元测试项目中的嵌入式处理器上运行的某些代码。
TestMe类具有几种可以很好地进行测试的方法,但是Foo和Bar类可以直接访问仅在嵌入式处理器上可用的内存映射寄存器。
#pragma once
#include "Foo.h"
#include "Bar.h"
class TestMe
{
public:
TestMe(Foo& aFoo, Bar& aBar);
~TestMe();
float FooBar();
};
模拟掉这些对象以便测试TestMe类的最佳方法是什么?
编辑:对我而言,最好的方法是尽可能少地干扰正在测试的软件。
最佳答案
“最佳”始终是主观的,但我喜欢使用模板来进行这种模拟:
template <typename TFoo, typename TBar>
class TestMeImpl
{
public:
TestMeImpl(TFoo& aFoo, TBar& aBar);
~TestMeImpl();
float FooBar();
};
using TestMe = TestMeImpl<Foo, Bar>;
您将针对
TestMeImpl
编写单元测试,但将TestMe
暴露给您的用户。