C# 如何验证typemock中私有方法调用的数量
我有一个公共方法,它调用私有方法,它在一个循环中C# 如何验证typemock中私有方法调用的数量,c#,unit-testing,typemock,C#,Unit Testing,Typemock,我有一个公共方法,它调用私有方法,它在一个循环中 public void FileManipulator(StreamReader file) { string line; while ((line = file.ReadLine()) != null) { if (checkLine(line)) { //some logic } else {
public void FileManipulator(StreamReader file)
{
string line;
while ((line = file.ReadLine()) != null)
{
if (checkLine(line))
{
//some logic
}
else
{
putToExceptions(line);
}
}
}
private void putToExceptions(string line)
{
//some logic
}
如何验证调用此内部私有方法的次数?我曾尝试使用
隔离.Verify.getTimeScaled
,但它显然不适合私有方法。免责声明。我在Typemock工作
没错,隔离.Verify.getTimeScaled()不适用于非公共方法。
您可以使用Isolate.WHENCALL(..).DoInstead()计算调用的方法数:
您可以阅读更多关于非公共API的信息。如果需要,您可以。读取文件和处理文件是完全不同的事情。把逻辑分开,分别测试。谢谢你的建议,但这是我的学习任务。无法更改逻辑,但我需要按照要求进行测试
[TestMethod, Isolated]
public void CountPrivateCalls()
{
int counter = 0;
var fileChecker = new FileChecker();
var testFile = new StreamReader("test.txt");
Isolate.NonPublic.WhenCalled(fileChecker, "putToExceptions").DoInstead(context =>
{
counter++;
context.WillCallOriginal();
});
fileChecker.FileManipulator(testFile);
Assert.AreEqual(3, counter);
}