单元测试:Quartz.Net执行功能
本文关键字:执行 功能 Net Quartz 单元测试 | 更新日期: 2023-09-27 18:09:12
我想测试一下我的石英的执行功能。Net作业,它实现了Quartz。IJob:
public void Execute(IJobExecutionContext context)
问题:如何创建一个新的ijobeexecutioncontext类实例。或者不创建新任务,直接从已经存在的调度任务中获取。
目标是创建一个测试,如:[Test()]
public void Test()
{
IJobExecutionContext jobExecutionContext = ???; //get a defined JobExecutionContext somehow...
m_myJob.Execute(jobExecutionContext);
}
我所发现的都是这个与同样问题相关的帖子。他所说的只是"通过将JobDataMap对象传递给我的方法context来解决"。"MergedJobDataMap",我似乎无法复制。而另一个提议,Moq的使用,目前对我来说还遥不可及。虽然如果这真的是唯一的方法,我将专注于这个解决方案。但是我想如果我先想一个更简单的方法是合理的。
ijobeexecutioncontext 是一个接口,这意味着您可以轻松地创建它的模拟版本。要么使用mock框架,如您提到的Moq,要么创建一个仅用于测试的类
private class MockExecutionContext : IJobExecutionContext
{
}
你将需要实现接口的所有成员,并给他们你的测试需要的行为,但编译器/智能感知将帮助你做到这一点。根据你所测试的内容,你应该能够给大多数成员'存根'实现,这些实现除了满足成员签名之外什么都不做。