- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好像注释不能支持代码
假设我调用了一个方法(例如 SaveTicket)并使用了构造函数(例如 Repository、Logging)来注入(inject)各种模拟接口(interface)。如果该方法调用另一个对象并在该方法内创建一个非原始对象。有什么简单的方法可以测试该非原始对象的值吗?
我想尝试用属性替换那个非原始对象并注入(inject)是可能的,或者使用 LastCall.Constraints。有没有更好的办法?
这是一个例子——在下面的例子中——为了验证 Repository.save(t);
用正确的 t 值调用我可以
做lastcall.constraints
lastcall.ignorearguments
有没有更好的办法?
CreateMyTicket(int ticketnumber, string name)
{
ticketobject t = new ticketObject(ticketnumber, name);
t.upgrade = ticketnumber+2;
Repository.save(t);
}
最佳答案
让我们举个例子。假设您有以下类并且想要对 CreateMyTicket
方法进行单元测试:
public class ClassToTest
{
public IRepository Repository { get; private set; }
public ClassToTest(IRepository repository)
{
Repository = repository;
}
public void CreateMyTicket(int ticketnumber, string name)
{
var t = new TicketObject(ticketnumber, name);
t.Upgrade = ticketnumber + 2;
Repository.Save(t);
}
}
这假设我们有一个 IRepository
接口(interface):
public interface IRepository
{
void Save(TicketObject t);
}
下面是示例单元测试的样子:
[TestMethod]
public void CreateMyTicketTest()
{
// arrange
var repositoryStub = MockRepository.GenerateStub<IRepository>();
var sut = new ClassToTest(repositoryStub);
var ticketNumber = 5;
var name = "John";
// act
sut.CreateMyTicket(ticketNumber, name);
// assert
repositoryStub.AssertWasCalled(
x => x.Save(
Arg<TicketObject>.Matches(t =>
t.Upgrade == 7 &&
t.Name == name &&
t.TicketNumber == ticketNumber
)
)
);
}
关于c# - 期望中的 Rhinomock 非原始对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10614229/
最后一次构建是在 2010 年 1 月 5 日。 我要学习一个模拟框架,我不想学习一个产品会消亡。 最佳答案 Rhino Mocks 没有更发达——但值得注意的是,它复活了大约一年 . Ayende
有没有办法设置RhinoMocks期望而不关心返回值?类似这样的事情: repository.Expect(r => r.Add(1)).Return(Anything) 最佳答案 请注意,如果您未指
我正在尝试为一段使用拼写校正器的代码设置单元测试。我已经正确地注入(inject)了代码依赖项,所以在 Rhinomocks 中设置 stub 不是问题,但是我为测试创建的文本 block 有 50
public interface IServiceInvoker { R InvokeService(Func invokeHandler) where T : class; } publi
尝试引发 Rhino Mock 事件时出现以下错误 Invalid call, the last call has been used or no call has been made (make s
我有一些与 Entity Framework 一起使用的代码,例如 class Person{ pubic Person() { Address = new Address(); }
我想做以下... 在调用某个方法之前,某个属性必须始终返回值 x调用方法后,某个属性必须始终返回值 y 我熟悉 RhinoMocks 中的 WhenCalled 方法,它允许我在调用方法后设置返回值,
有谁知道如何在抽象类上引发事件? 下面的测试在最后一行失败了。我得到的异常如下: System.InvalidOperationException : Invalid call, the last c
使用 RhinoMocks - 我可以获取被调用函数的参数吗?我是说;我可以从函数调用中获取一些未知参数吗? 我有一个模拟,我希望在这个模拟上调用一些函数。我知道其中一个参数,但另一个参数是未知的,因
我使用 RhinoMocks 毫无问题地使用 AssertWasCalled 检查我的方法是否使用简单的参数调用,例如 Arg.Is.Equal(1) 等。 但是,当我尝试期待自己创建的复杂对象时,它
据我了解,用RhinoMocks创建的mock对象在创建时直接进入录音状态,然后调用Replay()进入replay状态。我想手动决定模拟对象何时开始录制,或者能够暂停录制。这在 RhinoMocks
好像注释不能支持代码 假设我调用了一个方法(例如 SaveTicket)并使用了构造函数(例如 Repository、Logging)来注入(inject)各种模拟接口(interface)。如果该方
我正在尝试更加熟悉 Rhinomocks 框架,并且我正在尝试了解 rhinomocks 的 Expect 方法。 这是我写的单元测试: [TestMethod] public void Create
如何使用 RhinoMocks 模拟以下行为? 被测试的方法在接口(interface)上调用 ReceivePayment 方法。 public void TestedMethod(){ b
我有一个类,我想在我的测试中模拟它,这是它接口(interface)的一部分: interface IInventory { Instrument[] GetAllInstrumentsAff
我使用 RhinoMocks 进行了一个非常简单的测试(我不得不说我是初学者)。我试着像这样模拟我的对象 var mock = MockRepository.GenerateMock(); 创建一个助
我有这个方法: public void Handle(ShipmentConfirmedEvent message) { try {
我使用 RhinoMocks 进行模拟/ stub ,使用 Nunit 框架进行单元测试。 我有以下类(class) class A { private int dat
我们目前正在从 NMock2 迁移到 RhinoMocks,但我们在复制这段代码时遇到了问题: foreach (EventInfo e in typeof(MarketMapPopupIMVPVie
我正在使用 RhinoMocks 编写 NUnit 测试。其中一项测试如下所示: mock = MockRepository.CreateMock(); // Arrange // During th
我是一名优秀的程序员,十分优秀!