我想用什么时候(间谍).thenAnswer(新的答案())但似乎然后答案只在模拟而不是间谍上工作.我想使用间谍,因为我只想存根特定的方法.
有没有办法对间谍对象做出回答?
我在考虑重构一些实用程序类(静态类).静态类很难测试,主要问题是它的制作我们的代码非常紧密耦合,很多依赖.用于重构的最佳设计模式是什么?我想到了一个建造者的不可变对象,但我不确定
将此代码视为1我想重构
public class UtilTest {
public static boolean isEligibleItem(Item item){
if(isCondition1(item)){
return isCondition2(item);
}
return false;
}
public static boolean isCondition1(Item item){
//go to service that go to the data base
return false;
}
public static boolean isCondition2(Item item){
//go to service that go to the data base
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想测试我的isEligibleItem()方法,我需要模拟转到db的2方法.我不能这样做,因为它们是静态的.我想避免使用Powermock
嗨,我想使用基本测试,一些测试将会提供.这是我的基地
@RunWith(MockitoJUnitRunner.class)
public class BaseOmsUnitTest {
@BeforeClass
public static void setUpBeforCalss() throws Throwable{
JunitUtils.mockIlSession();
OMSDomainsMocker helper = new OMSDomainsMocker();
helper.mockOMSDomainConnection();
}
@Test
public void dummyTest(){
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我希望每个继承此基本测试的类都具有相同的init我还故意添加@RunWith注释作为init需要此运行器.但是当我用maven运行测试而没有放置一个dummyTest它给了我
没有在Base找到的测试你有没有忘记@Test注释?
我可以在不使用这个dummyTest的情况下克服这一点