我想测试编写在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暴露给您的用户。

07-28 04:06