RxCpp:如何制作可观察到热度的UnitTest

时间:2018-09-24 09:28:24

标签: unit-testing testing observable rxcpp

我有一个简单的CFrameParser类,用于将Socket字节流处理成帧。

class CDataLinkFrame {
public:
    CDataLinkFrame();
    void consumeByte(char ch);
    observable<std::string> getFramesObservable();
private:
    subjects::subject<std::string> _framesSubject;
}

客户将通过以下方式订阅框架:

dlf.getFramesObservable().subcribe()

这是一个可观察到的热点,套接字数据通过以下方式在单独的线程中使用:

dlf.consumeByte(ch)

和框架发布者:

_framesSubject.get_subscriber().on_next(...);

如何使UnitTest可以测试我自己的RxCpp?

我想订阅CDataLinkFrameget.getFramesObservable(),然后将预定义的字节流传递给它并测试预期的帧消息:

const char testData[] = {(char) 0x1, (char) 0x02, (char) 0xFD, 'H', 'e', 'l', 'l', 'o', '!', (char) 0xFF};
auto observable = dlf.getFramesObservable();
// Subscribe to some kind of test_observer

// Provide some data to fire the frame
dlf.consumeData(buff);

// Test for expected frames. 
// In my case exactly 1 frame of std::string type ('Hello!')

如何在RxCpp中执行此操作?

0 个答案:

没有答案