怎么写Java测试代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么写Java测试代码?相关的知识,希望对你有一定的参考价值。

  可以用main函数和JUnit来写测试代码。main是最早使用的,但是现在更流行的测试工具是JUnit。
  JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
  下面是一些具体的编写测试代码的技巧或较好的实践方法:
  1. 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
  2. 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。
  3. 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。
  4. 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
  5. 将测试代码和工作代码放在一起,一边同步编译和更新。(使用Ant中有支持junit的task.)
  6. 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。
  7. 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
  8. 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。
  9. 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
  10.测试要尽可能地小,执行速度快。
  11.不要硬性规定数据文件的路径。
  12.利用Junit 的自动异常处理书写简洁的测试代码
  事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
  13. 充分利用Junit 的assert/fail 方法
  assertSame()用来测试两个引用是否指向同一个对象
  assertEquals()用来测试两个对象是否相等
  14. 确保测试代码与时间无关
  15. 使用文档生成器做测试文档。
参考技术A 楼主,你是不是想编写小程序在电脑上测试啊?
装个jdk
上百度输入jdk然后直接下载就行了
下载完以后
设置一下环境变量
右键单击---我的电脑----属性----高级-----环境变量
然后修改一下系统变量中的path路径
路径为C:\jdk1.6\bin;//此处为你的bin所在地址
然后点击确定就行了
在桌面新建文本文档
重命名,拓展名改为.java
在里面编程
保存
打开dos界面编译程序//dos会打开吗?,点击桌面左下角的开始菜单选择“运行”在文本框里输入cmd点击确定
javac 文件名(带拓展名) //成功则生成.class文件
解释程序
java 文件名(不带拓展名)
解释的这么清楚了,再不会也别问我了
参考技术B public static void main(String args[])
//这里写测试代码
//MyEclipse工具中你随便建立一个java项目,然后再建立一个类,就可以写测试代码了。
//前面的双斜线表示注释的意思,意思是你的这些代码不会被java执行。

希望采纳,谢谢,如果有什么不明白的可以继续。
参考技术C main方法

java spring项目的controller层的代码怎么用junit写单元测试用例

java spring项目的controller层的代码怎么用junit写单元测试用例。我用百度的方法不知道为什么进不去项目,不知道怎么搞,一运行就是说是一个空测试。

springboot与Junit有整合的方式,你可以模拟http请求从你的测试类发送请求到Controller,就像https://www.youyanpai.com/2018/springboot-test-with-junit4.html中描述的一样。下面我列出部分代码:

package com.youyanpai;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class SimpleTest 

private MockMvc mockMvc;
    @Autowired
     private WebApplicationContext webApplicationContext;
    /**
 * 前置处理
 * @author 有言派
 * @author www.youyanpai.com
 */
@Before
    public void before() throws Exception 
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    
/**
 * 测试方法
 * @author 有言派
 * @author www.youyanpai.com
 */
@Test
    public void testYourMethod() throws Exception 
        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/login")
           .param("username", "youyanpai.com")
           .param("password", "youyanpai.com")
           .session(session))
           .andReturn();                
       int status = mvcResult.getResponse().getStatus();
      String responseString = mvcResult.getResponse().getContentAsString();                //请求是否正确
      Assert.assertEquals("请求错误", 200, status);                
      //输出返回值
      System.out.println("有言派提示您,测试返回结果:"+responseString);
    

希望能够帮到你!

参考技术A

Spring项目controller 是依赖springmvc的

直接启动测试,是没有初始化spring容器(web.xml中初始化)的

如果是dao层 service层的测试可以用单元测试,controller层建议还是 启动web项目吧

补充一下Java WEB开发基础知识

参考技术B 使用spring test加Mockito框架。需要添加第三方jar包

以上是关于怎么写Java测试代码?的主要内容,如果未能解决你的问题,请参考以下文章

有了java代码,如何测试

java spring项目的controller层的代码怎么用junit写单元测试用例

JUnit代码测试是啥?怎么写代码?

JUnit代码测试是啥?怎么写代码?

java抽象类怎么写单元测试

Java单元测试