我有一个简单的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中执行此操作?