gpt4 book ai didi

java - 在同一对象中测试方法时如何模拟对象中的方法

转载 作者:搜寻专家 更新时间:2023-10-31 20:21:47 26 4
gpt4 key购买 nike

我有这样的java代码:

public class A {
public int get() {
// many codes
String s = new String();
//...
int n = 5;
return isEmpty(s) ? n : -1;
}
public boolean isEmpty(String s) {
return s.isEmpty();
}
}

现在我只想测试 get(),我不想同时测试 isEmpty(),所以我想模拟 isEmpty(),只测试一个方法,如果它调用类的另一个方法, easymock 可以模拟这个方法吗?

最佳答案

一个可行的方法是模拟A并做类似的事情

public class TestableA extends A
{
@Override
public boolean isEmpty( String s )
{
// "mock" impl goes here, eg.:
return s;
}
}

并根据 TestableA 编写单元测试。您甚至可以在 @Before 方法中创建它:

public class UnitTest
{
private A a; // note: A, not TestableA!

@Before
public void setUp()
{
this.a = new A()
{
@Override
public boolean isEmpty( String s )
...
}
}

@Test
...
}

关于java - 在同一对象中测试方法时如何模拟对象中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684231/

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