【发布时间】:2015-11-20 14:02:56
【问题描述】:
我的 ConsoleApp 中名为 AutoLetterGenBatch 的抽象类中有以下名为 Execute() 的方法。我正在尝试对此进行单元测试。
public void Execute()
{
BatchJobSecurity.Instance.CreatePrincipal();
DoExecute();
}
所以我设置了我认为所有正确的引用并尝试调用如下方法。
[TestMethod]
public void TestMethod1()
{
AutoLetterGenBatchJob ALGBJ = new AutoLetterGenBatchJob();
ALGBJ.Execute();
}
但是,当我进行构建时,它给了我这个编译错误 Error 34 Cannot create an instance of the abstract class or interface 'AutoLetterGenBatch.AutoLetterGenBatchJob'。
我对单元测试有些陌生。我意识到这可能不是一个很大的测试,但我只想看到我的 Execute() 方法暂时受到打击。我读过用抽象类解决这个问题的一个好方法是为抽象类设置一个模拟对象。所以我尝试用 RhinoMocks 来做这件事。
[TestMethod]
public void TestMethod1()
{
AutoLetterGenBatchJob ALGBJ = MockRepository.GenerateStub<AutoLetterGenBatchJob>();
ALGBJ.Execute();
}
它现在构建时使用了所有正确的 using 语句。但是,当测试运行时,我现在收到此错误。 找不到具有匹配参数的构造函数。我对此还是很陌生。如果有人可以帮助我了解我需要做什么,我将不胜感激。
【问题讨论】:
标签: unit-testing mocking rhino-mocks