gpt4 book ai didi

java - EasyMock 期待私有(private)方法调用

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:33 24 4
gpt4 key购买 nike

假设我有一个看起来像这样的方法:

public static String[] parseFoo(Foo anObject){
Foo anotherObject = parseFoo2(anObject);
...
}

private static Foo parseFoo2(Foo anObject){
...
}

这两个方法都在同一个类中。 parseFoo2 只是帮助 parseFoo 完成一些事情的辅助方法。我正在尝试测试方法 parseFoo。 EasyMock 中有没有人可以在 parseFoo2 的私有(private)方法调用上指定返回值,就像我可以使用

指定对象的实例方法调用一样
EasyMock.createMock(...);
anObject.expect(...).andReturn(...);

因为我想测试公共(public)方法,但我不想进入私有(private)方法并测试里面的实现。

谢谢

最佳答案

不要这样做。一个好的单元测试的基石之一是它应该尽可能少地依赖实现细节。模拟一个私有(private) 方法就是这样。

为什么?因为这会使您的单元测试非常脆弱。考虑这样一种情况,您在一周内返回此代码并决定您并不真正需要方法 parseFoo2 并且您实际上想要内联它的代码。或者您想将此方法拆分为两个或多个更小的方法。所有非常有效的重构实践 - 但它们会破坏单元测试!

您不希望每次进行这样的简单重构时都进行单元测试。因此,模拟私有(private)方法被认为是不好的做法。

关于java - EasyMock 期待私有(private)方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833945/

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