【发布时间】:2017-06-12 13:47:45
【问题描述】:
在我当前的项目中,我的测试断言发生在第一个 OnNext 发生之前。如何在断言之前等待第一个结果?
Google 建议使用 TestScheduler。相关文档 (like this SO) 似乎表明我知道或关心时间值,而我不知道。
我也尝试过使用 await pipeline.SqlStatements.FirstAsync(),但这阻止了整个测试并且没有任何返回。
[TestMethod]
public void Process_Fileinfos_BatchesHaveSql()
{
var output = new List<string>();
var templates = new[] {new FileInfo(@"DropDatabase.txt")};
var pipeline = new TemplatesPipeline();
pipeline.SqlStatements.Subscribe(value => output.Add(value));
pipeline.Process(templates);
var expected = "dropdatabasescriptcontent";
Assert.AreEqual(expected, output.First());
}
这里不知道如何进行。
【问题讨论】:
-
请提供minimal reproducible example。当我们无法运行显示问题的原始代码时,很难提供解决方案。
标签: c# unit-testing system.reactive