我正在尝试使用Junit 4测试我的servlet类的快乐流。即使测试通过,代码覆盖率也只有37%。需要帮助了解哪里出了问题以及如何纠正。
测试用例
public class SearchOrganizationTest extends Mockito{
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;
@Before
public void setUpStreams() {
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));
}
@After
public void restoreStreams() {
System.setOut(originalOut);
System.setErr(originalErr);
}
@Mock
private Organization org;
@InjectMocks
SearchOrganization mockSearchOrganization;
@Test //Test code for checking whether the Search Organization outer (invoking) function is working fine
public void testServlet() throws Exception {
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
try {
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
when(response.getWriter()).thenReturn(writer);
new SearchOrganization().doPost(request, response); //calling the function with the dummy parameters
System.out.print("hello");
String res = outContent.toString();
assertEquals(res, outContent.toString());
System.err.print("hello again");
assertEquals("hello again", errContent.toString());
writer.flush(); // it may not have been flushed yet...
}catch(Exception e){}
}
}
SearchOrganization。班
//Invoking the method on the submission of the form
@WebServlet("/viewOrganization")
public class SearchOrganization extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
RequestDispatcher dispatcher=request.getRequestDispatcher("SearchOrg.html");
PrintWriter out=response.getWriter();
//Getting the attributes from the UI
try {
DataConnection ds =new DataConnection();
String org_name = request.getParameter("searchOrg");
//Setting the objects to insert the achieved attributes to corresponding the columns of the table
Organization searchOrg = new Organization();
searchOrg.setOrgName(org_name);
dispatcher.include(request, response);
//calling and fetching the details recieved by the getOrganizations function from OrganizationDao class
List<Organization> list = new OrganizationDao(ds).getOrganization(searchOrg);
out.print("<h3 align = 'center'>Orgnanization Name</h3>");
out.print("<table class= 'fixed_header' align= 'center' ");
out.print("<thead>");
out.print("</thead>");
out.print("<tbody");
//listing the values fetched by the function to appropriate columns of a table
for(Organization e:list){
out.print("<tr><td style='padding:10px'><a href='SearchOrg.html?orgName="+e.getOrgName()+"'>"+e.getOrgName()+"</a></td></tr>");
}
out.print("</tbody>");
out.print("</table>");
out.close();
}catch(Exception e) {System.out.println("SearchOrganizatin: doPost() - "+e);}
}
}
*在调度程序中。包括(请求、响应) 测试用例打破了愉快的流程,直接进入捕获(异常e){System.out.println(“SearchOrganizatin:doPost()-”e);} 零件。
我需要知道如何忽略dispatcher.include(请求,响应);
以便在那之后继续流。
您需要处理模拟的请求对象,并在调用getParameter时返回模拟的调度程序。
像这样的东西
java prettyprint-override">when(request.getParameter(Mockito.anyString())).thenReturn(mocked-dispatcher-object);
我对junit mockito非常陌生,并尝试使用mockito编写junit测试用例。 这是我的方法,我必须为此编写一个jUnit。 ChefService和ChefApi传递的方法参数来自第三方api 这里是呼叫chefService。listCookbookVersions()将返回CookBookVersion类类型的迭代器,如
我有下面一个班的方法。 使用mockito的junit测试用例将提供100%的代码覆盖率。
问题内容: 我正在使用JavaScript测试运行程序“摩卡”。 我的测试失败了,因此我将使用进行调试。 但是运行测试时,没有输出(仅来自Mocha的测试结果)。看来Mocha已捕获并抑制了我的输出! 如何让Mocha显示输出?(对于失败的测试)? 编辑: 抱歉!- 在测试期间可以正常工作!我肯定一直期望它抑制输出,而且我没有正确检查自己的代码。感谢您的回应。所以…话虽如此…也许抑制通过测试的输出
问题内容: 建议使用哪些方法来加快测试速度。 当连接断开或发生超时错误等时,我正在测试具有重试功能的网络库。但是,该库在重试之间使用a (因此在服务器重新启动时它不会连接数千次)。这个电话大大降低了单元测试的速度,我想知道有什么方法可以覆盖它。 请注意,我愿意实际更改代码,或使用模拟框架模拟Thread.sleep(),但想先听听您的意见/建议。 问题答案: 通常将与时间相关的功能委托给单独的组件
问题 假如你正在使用 CoffeeScript 并且想要验证功能是否与预期一致,便可以决定使用 Nodeunit 测试框架。 讨论 Nodeunit 是一种 JavaScript 对于单元测试库( Unit Testing libraries )中 xUnit 族的实现,Java, Python, Ruby, Smalltalk 中均可以使用。 当使用 xUnit 族测试框架时,你需要将所需测试的
问题 假如你正在使用 CoffeeScript 写一个简单地计算器,并且想要验证其功能是否与预期一致。可以使用 Jasmine 测试框架。 讨论 在使用 Jasmine 测试框架时,你要在一个参数(spec)文档中写测试,文档描述的是代码需要测试的预期功能。 例如,我们希望计算器可以实现加法和减法的功能,并且可以正确进行正数和负数的运算。我们的 spec 文档如下列所示。 # calculator
我正在写一个简单的测试用例。我使用作曲家安装了代码欺骗。我的测试用例位于测试用例文件夹内的根文件夹中 当我尝试运行以下代码时 当我尝试在浏览器中运行代码时,我得到以下错误 在我的项目中有一个名为yiisoft\yii2-codecsion\TestCase.php的文件 我做错了什么?有人能帮忙吗。?
我使用数据提供者方法和测试方法(测试方法中带有ITestContext参数)。一个简化的例子如下: 我的Retry类和RetryListener类如下: } 预期:当测试失败时,TestNG调用重试,然后数据提供程序应将相同的值返回给测试方法。 观察到:数据提供者返回相同的值,但测试方法没有运行,重试终止,下一个测试开始(数据提供者现在将返回新值) 但我的重试没有输入测试方法(测试方法不需要(in