gpt4 book ai didi

c# - 单元测试 quartz-dot-net (Quartz.Net) 执行函数

转载 作者:行者123 更新时间:2023-12-02 04:29:32 25 4
gpt4 key购买 nike

我想测试我的 Quartz.Net 作业的执行函数,它实现了 Quartz.IJob:

public void Execute(IJobExecutionContext context)

问题:如何创建一个新的 IJobExecutionContext 类实例。或者甚至不创建一个新的,而是从一个已经存在的预定作业中获取它。

目标是创建一个测试,例如:

[Test()]
public void Test()
{
IJobExecutionContext jobExecutionContext = ???; //get a defined JobExecutionContext somehow...
m_myJob.Execute(jobExecutionContext);
}

我找到的所有内容都是 this related post有同样的问题。他所说的只是“通过仅将 JobDataMap 对象传递给我的方法来解决:context.MergedJobDataMap”,我似乎无法重现。而另一个提议,即最小起订量的使用,目前对我来说是遥不可及的。虽然如果它真的是唯一的方法,我会专注于这个解决方案。但我认为如果我先尝试找到一种更简单的方法是合理的。

最佳答案

IJobExecutionContext 是一个接口(interface),这意味着您可以轻松创建它的模拟版本。通过使用 Mocking 框架,如您提到的 Moq,或者通过创建一个仅用于您的测试的类

private class MockExecutionContext : IJobExecutionContext 
{


}

您将需要实现接口(interface)的所有成员,并为它们提供测试所需的行为,但编译器/智能感知会帮助您完成此操作。根据您正在测试的内容,您应该能够为大多数成员提供“ stub ”实现,这些实现除了满足成员签名外什么都不做。

关于c# - 单元测试 quartz-dot-net (Quartz.Net) 执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com