gpt4 book ai didi

c# - 我如何使用 Rhino Mocks 检查传递给方法的值

转载 作者:可可西里 更新时间:2023-11-01 03:04:52 26 4
gpt4 key购买 nike

我是 mocking 的新手,我很难用 UnitTesting 解决问题。

假设我有这段代码:

public class myClass{

private IDoStuff _doer;

public myClass(IDoStuff doer){
_doer = doer;
}

public void Go(SomeClass object){

//do some crazy stuff to the object

_doer.DoStuff(object) //this method is void too
}
}

好的,所以我想对 Go 方法进行 UNIT 测试。我不关心 _doer 对象在获取对象后对该对象做了什么。

但是,我确实想检查 _doer 对象收到了什么。

在伪代码中我想实现这个:

[Test]
public void MyTest()
{
IDoStuff doer = Mocker.Mock<IDoStuff>();
Guid id = Guid.NewGuid();

//test Go method
new MyClass(doer).Go(new SomeClass(){id = id});

Assert.AreEqual(id,MockingFramework.Method(DoStuff).GetReceived<SomeClass>().id);
}

这是否可以使用 Rhino,如果可以,我该如何实现?

干杯

最佳答案

使用新的 Arrange/Act/Assert 语法:

[Test]
public void MyTest()
{
// arrange
IDoStuff doer = MockRepository.GenerateStub<IDoStuff>();
MyClass myClass = new Myclass(doer);
Guid id = Guid.NewGuid();

// act
myClass.Go(new SomeClass(){id = id});

// assert
doer.AssertWasCalled(x => x.DoStuff(
Arg<Someclass>.Matches(y => y.id == id)));
}

关于c# - 我如何使用 Rhino Mocks 检查传递给方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229040/

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