我在 C# 和 rhino mocks 方面都很新。我搜索并找到了与我的问题类似的主题,但找不到合适的解决方案。
我试图了解在我的单元测试中是否调用了私有方法。我正在使用 rhino mock,阅读了很多关于它的文件,其中一些只是说将方法的访问说明符从私有更改为公共,但我无法更改源代码。我试图将源文件链接到我的测试项目,但它没有改变。
public void calculateItems()
{
var result = new Result(fileName, ip, localPath, remotePath);
calculateItems(result, nameOfString);
}
private void calculateItems(Result result, string nameOfString )
从上面的代码可以看出,我有两个方法名称完全相同,calculateItems,但是公共的一个没有参数,私有的一个有两个参数。我想了解当我在单元测试中调用公共方法时,是否调用了私有方法?
private CalculateClass sut;
private Result result;
[SetUp]
public void Setup()
{
result = MockRepository.GenerateStub<Result>();
sut = new CalculateClass();
}
[TearDown]
public void TearDown()
{
}
[Test]
public void test()
{
sut.Stub(stub => stub.calculateItems(Arg<Result>.Is.Anything, Arg<string>.Is.Anything));
sut.calculateItems();
sut.AssertWasCalled(stub => stub.calculateItems(Arg<Result>.Is.Anything, Arg<string>.Is.Anything));
}
在我的单元测试中,我遇到了这样一个错误,上面写着“calculateItems 的重载方法没有两个参数”。有没有办法在不更改源代码的情况下对其进行测试?