草庐IT

c# - 如何用不同的 stub 调用替换已声明的 stub 调用?

如果我有一个RhinoMock对象,它已经像这样声明了一个stub调用:mockEmploymentService.Stub(x=>x.GetEmployment(999)).Return(employment);无论如何我可以删除这个调用以用不同的东西替换它,例如:mockEmploymentService.Stub(x=>x.GetEmployment(999)).Return(null);我问的原因是我想设置一些通用模拟以用于多个单元测试,然后允许每个单元测试在必要时定制调用。 最佳答案 我使用这个扩展方法来清除stub的行为

c# - 使用 RhinoMocks,如何在没有空构造函数的情况下模拟或 stub 具体类?

当类的构造函数为空时,使用RhinoMocks模拟具体类似乎非常容易:publicclassMyClass{publicMyClass(){}}但是如果我添加一个带参数的构造函数并删除不带参数的构造函数:publicclassMyClass{publicMyClass(MyOtherClassinstance){}}我倾向于得到一个异常(exception):System.MissingMethodException:Can'tfindaconstructorwithmatchingarguments我试过在对Mock或Stub的调用中放入空值,但它不起作用。我可以创建缺少无参数构造函

c# - 使用 RhinoMocks,如何在没有空构造函数的情况下模拟或 stub 具体类?

当类的构造函数为空时,使用RhinoMocks模拟具体类似乎非常容易:publicclassMyClass{publicMyClass(){}}但是如果我添加一个带参数的构造函数并删除不带参数的构造函数:publicclassMyClass{publicMyClass(MyOtherClassinstance){}}我倾向于得到一个异常(exception):System.MissingMethodException:Can'tfindaconstructorwithmatchingarguments我试过在对Mock或Stub的调用中放入空值,但它不起作用。我可以创建缺少无参数构造函

c# - 如何告诉 Pex 不要 stub 具有具体实现的抽象类

我正在尝试使用Pex来测试一些代码。我有一个具有四个具体实现的抽象类。我为四种具体类型中的每一种都创建了工厂方法。我还为抽象类型创建了一个,除了thisnicethread。说明,Pex不会,也不应该使用抽象工厂方法。问题是我的一些代码依赖于所有的四种具体类型(因为创建更多子类的可能性非常小),但是Pex通过使用Moles创建一个stub。我如何强制Pex使用其中一种工厂方法(任何一种,我不在乎)来创建抽象类的实例,而无需为该抽象类创建Molesstub?是否有PexAssume指令可以完成此操作?请注意,一些具体类型形成了一种树结构类型,所以说ConcreteImplementati

c# - 如何告诉 Pex 不要 stub 具有具体实现的抽象类

我正在尝试使用Pex来测试一些代码。我有一个具有四个具体实现的抽象类。我为四种具体类型中的每一种都创建了工厂方法。我还为抽象类型创建了一个,除了thisnicethread。说明,Pex不会,也不应该使用抽象工厂方法。问题是我的一些代码依赖于所有的四种具体类型(因为创建更多子类的可能性非常小),但是Pex通过使用Moles创建一个stub。我如何强制Pex使用其中一种工厂方法(任何一种,我不在乎)来创建抽象类的实例,而无需为该抽象类创建Molesstub?是否有PexAssume指令可以完成此操作?请注意,一些具体类型形成了一种树结构类型,所以说ConcreteImplementati

javascript - 用 Protractor 模拟和 stub

我想用Protractor测试我的Angular应用程序。该应用程序有一个与服务器对话的API模块在这些测试期间,我想模拟这个Api模块。我不想进行完整的集成测试,而是使用API的预期值对用户输入进行测试。这不仅可以使客户端测试更快,还可以让我测试边缘情况,例如连接错误。我怎样才能用Protractor做到这一点?我刚开始设置集成测试。我使用了npmProtractor模块,安装了selenium,调整了默认配置并使用了onProtractorRunner.js验证我的设置是否有效。推荐的模拟方式是什么?我假设模拟必须在浏览器中完成,而不是直接在测试文件中完成。我假设测试文件中的命令是

javascript - 用 Protractor 模拟和 stub

我想用Protractor测试我的Angular应用程序。该应用程序有一个与服务器对话的API模块在这些测试期间,我想模拟这个Api模块。我不想进行完整的集成测试,而是使用API的预期值对用户输入进行测试。这不仅可以使客户端测试更快,还可以让我测试边缘情况,例如连接错误。我怎样才能用Protractor做到这一点?我刚开始设置集成测试。我使用了npmProtractor模块,安装了selenium,调整了默认配置并使用了onProtractorRunner.js验证我的设置是否有效。推荐的模拟方式是什么?我假设模拟必须在浏览器中完成,而不是直接在测试文件中完成。我假设测试文件中的命令是

javascript - 如何 stub Jasmine 模拟对象的方法?

根据Jasmine文档,可以像这样创建模拟:jasmine.createSpyObj(someObject,['method1','method2',...]);如何stub这些方法之一?例如,如果你想测试当一个方法抛出异常时会发生什么,你会怎么做? 最佳答案 你必须像EricG评论的那样链接method1,method2,但不能用andCallThrough()(或and.callThrough()在2.0版中)。它将委托(delegate)给真正的实现。在这种情况下,您需要链接and.callFake()并传递您想要调用的函数(

javascript - 如何 stub Jasmine 模拟对象的方法?

根据Jasmine文档,可以像这样创建模拟:jasmine.createSpyObj(someObject,['method1','method2',...]);如何stub这些方法之一?例如,如果你想测试当一个方法抛出异常时会发生什么,你会怎么做? 最佳答案 你必须像EricG评论的那样链接method1,method2,但不能用andCallThrough()(或and.callThrough()在2.0版中)。它将委托(delegate)给真正的实现。在这种情况下,您需要链接and.callFake()并传递您想要调用的函数(

javascript - 轻松清理 sinon stub

有没有一种方法可以轻松地重置所有sinonspy模拟和stub,这些模拟和stub可以与mocha的beforeEachblock一起干净地工作。我看到沙盒是一个选项,但我不知道如何为此使用沙盒beforeEach->sinon.stubsome,'method'sinon.stubsome,'mother'afterEach->#Iwanttoavoidtheselinessome.method.restore()some.other.restore()it'shouldcallasomemethodandnotother',->some.method()assert.calleds