gpt4 book ai didi

java - 当每个方法返回一个模型时,Action 类 (Struts 2) 的 JUnit 测试用例

转载 作者:行者123 更新时间:2023-12-01 10:40:45 25 4
gpt4 key购买 nike

我是 JUnit 新手,我需要为许多这样的方法编写 JUnit 测试用例。非常感谢任何线索。谢谢

public String screen() {

ServiceRequest request = new ServiceRequest(
Key1.Key2.Home.screenDisplay,
Key1.Key2.serviceClass);
ServiceResponse response = getService(request);
someModel = new someModel();
someModel = (someModel) response
.getOutput(Key1.Key2.Home.Out);
if (someModel != null) {

someModel.setList(someModel.getList());

setsomeModel(someModel);
}
return SUCCESS;

}

最佳答案

   someModel = new someModel();

这一行最终不会执行任何操作,因为您无论如何都会在下一行中覆盖 someModel

在您的情况下,您可以使用 Mockito 来监视您的对象,从而允许 getService() 方法返回您控制的内容 - 假设它不是私有(private)的。如果是这样,那么您就会遇到问题。

只是向您展示它是如何完成的:

class ToTest {

public void methodA() {
System.out.println( methodB() );
}

String methodB() {
return "foo";
}
}

public class TestCase {

@Test
public void bla() {
final ToTest x = Mockito.spy( new ToTest() );
Mockito.when( x.methodB() ).thenReturn( "bar" );

x.methodA(); // prints out "bar"

Mockito.verify( x ).methodB();
}
}

如果您从 getService() 方法返回一个模拟,则可以验证是否调用了 setList (好吧,在您的情况下,您通过设置相同的列表以某种方式做出一些奇怪的事情),您可以验证您的 spy 对象是否调用了 setsomeModel。

关于java - 当每个方法返回一个模型时,Action 类 (Struts 2) 的 JUnit 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34419326/

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