我有两个异步函数,这些函数位于外部供应商提供的dll中,并且正在尝试为此编写单元测试。
实现其中一种方法(创建方法),以使其创建会话并执行该会话。 另一个方法(更新事件方法)的实现方式是,它注册一个事件,并在第一个方法执行时连续返回create方法的当前状态/执行进度。
我能够使用Subscriber模式测试等效的打字稿代码。 我首先注册事件(使用更新事件方法)>订阅>在浏览器控制台上获取输出。然后,我调用create方法,而update event方法将在执行create方法时返回进度。
当两种方法都不同步时,如何在C#中执行此操作?
这是我的考试班
public class FlashTest : BaseTest
{
public FlashSessionController flashSessionController;
public FlashSessionResource flashSessionResourceCreate;
public FlashSessionResource flashSessionResourceUpdate;
public FlashTest()
{
FlashSessionController flashSessionControllerctor = new FlashSessionController(properties);
flashSessionController = flashSessionControllerctor;
}
FlashSession flashSession = new FlashSession
{
id = Guid.NewGuid().ToString(),
ecuId = "513ac359-44a9-47a4-ab7c-dc6ba3e287e6"
};
[Test, RequiresThread]
public async Task FlashSessionWorkflow()
{
await UpdateEventFlash(flashSessionController);
await CreateFlash(flashSessionController);
}
public async Task CreateFlash(FlashSessionController flashSessionController)
{
flashSessionResourceCreate = await flashSessionController.createFlashSession(flashSession);
}
public async Task UpdateEventFlash(FlashSessionController flashSessionController)
{
flashSessionResourceUpdate = await flashSessionController.updateEventFlashSession();
}
}
以下是上面的测试中使用的程序集类:
public class FlashSessionController
{
public FlashSessionController(IAPIProperties properties);
public event EventHandler<ControllerEventArgs<FlashSessionResource>> OnMessage;
public event EventHandler<ControllerEventArgs<ErrorDescriptor>> OnError;
public Task<FlashSessionResource> createFlashSession(FlashSession flashsession);
public Task<FlashSessionResource> updateEventFlashSession();
}