junit setup(求一篇新手学习Junit后的心得体会)
本文目录
- 求一篇新手学习Junit后的心得体会
- 哪个junit断言语句检查期望值和实际值是否相同
- JUnit提示错误,怎么办
- junit单元测试中怎么注入抽象类的私有属性
- JUnit SetUp / TearDown
- mockito和junit的区别
求一篇新手学习Junit后的心得体会
不要用TestCase的构造函数初始化,而要用setUp()和tearDown()方法。 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。 将测试代码和工作代码放在一起,一边同步编译和更新。 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。 测试要尽可能地小,执行速度快。
哪个junit断言语句检查期望值和实际值是否相同
Myeclipse中单元测试断言例子:首先,建立WebProject,工程名为:JunitDemo,我选择的是JavaEE5。然后建立包,包名为:demotest。其次,在包下面建立一个JavaCLass,也就是Java类,类名为:JunitDemo下一步是在JunitDemo.java上面点击右键----NEW----OTHER,然后找到Java------JUint,然后里面就选择JUintTestCase。如图:这里,setup和teardown打上勾。包就选择demotest,这样就和JuintDemo在一个包下面,Name就写JunitDemoTest,好了。点击FINISH完成。,这个过程中就会自动安装Junit 3的包。JunitDemoTest.java的内容为:package demotest; import junit.framework.TestCase; public class JunitDemoTest extends TestCase{ protected void setUp() throws Exception{ super.setUp(); } protected void tearDown() throws Exception{ super.tearDown(); } public void testReturnstring(){ JunitDemojd= new JunitDemo(); this.assertEquals("I’mgood",jd.returnstring()); } public static void main(Stringargs){ System.out.println("测试环境。"); } } 然后就是RUN as---JunitTest。这是看结果就好了,进度条为绿色就表示为,通过了,红色就是没有通过。如图:
JUnit提示错误,怎么办
可以按照以下方法解决。
具体方法如下:
1、右键单击项目名,选择buildpath-》add library,弹出配置add library对话框;
2、选择junit,next下一步;
3、这时系统会自动找到JUnit4.jar包,点击finish;
4、此时项目还是提示有错误。因为项目中没有导入junit4包。在程序开头处,键入“import org.junit.Test;”这时就ok了;
junit单元测试中怎么注入抽象类的私有属性
由于当前最想版本的Spring(Test) 3.0.5还不支持@ContextConfiguration的注解式context file注入,所以还需要写个setUp处理下,否则类似于Tiles的加载过程会有错误,因为没有ServletContext。3.1的版本应该有更好的解决方案。
JUnit SetUp / TearDown
通常在执行测试用例之前,需要做一些设置,或者MOCK一些数据。可以在每个测试用例中都写一段这样的逻辑,但是更好的一种做法是覆写 TestCase 的 setup 和 teardown 方法。如下:
另一种更推荐的做法是使用注解 @Before 和 @After 。
类似的注解还有 @BeforeClass 和 @AfterClass 。比较如下: @BeforeClass 会在 所有 测试用例执行之前执行。且只会执行一次; 而 @Before 会在 每个 测试用例执行之前都执行一次。 @AfterClass 与 @After 的比较类似。 此外,
mockito和junit的区别
Mockito是一个开源mock框架;Junit是一个Java语言的单元测试框架。junit的测试用例:public class MainTstObjectJMockTest {private Mockery context = new JUnit4Mockery();private MayMockObject mayMockObject;private MainTstObject mainTstObject;@Beforepublic void setUp() {this.mayMockObject = this.context.mock(MayMockObject.class); // Mock了外接接口this.mainTstObject = new MainTstObject();this.mainTstObject.setMayMockObject(this.mayMockObject);}@Testpublic void process() {final String str1 = "Mockito返回字符串。";final String str2 = "Mockito返回字符串。";this.context.checking(new Expectations() {{oneOf(mayMockObject).getString(str2);will(returnValue("")); // Mock返回值// allowing(mayMockObject).getString(with(any(String.class)));// will(returnValue(""));}});String ret = this.mainTstObject.create(str1, str2);Assert.assertEquals(ret, str1);}@Afterpublic void tearDown() {}}Mockito的测试用例:public class MainTstObjectMockitoTest {// 指定Mock的对象@Mockprivate MayMockObject mayMockObject;private MainTstObject mainTstObject;@Beforepublic void setUp() {MockitoAnnotations.initMocks(this); // 声明测试用例类this.mainTstObject = new MainTstObject();this.mainTstObject.setMayMockObject(this.mayMockObject);}@Testpublic void process() {String str1 = "Mockito返回字符串。";String str2 = "Mockito返回字符串。";Mockito.when(this.mayMockObject.getString(str2)).thenReturn(""); // Mock返回值String ret = this.mainTstObject.create(str1, str2);Assert.assertEquals(ret, str1);}@Afterpublic void tearDown(){}}junit和Mockito在用法上的一些区别:1、对于要Mock的对象,JMock要显示指出来【this.mayMockObject = this.context.mock(MayMockObject.class);】;而Mockito只是简单加上注释【@Mock】,然后声明下测试用例类即可【MockitoAnnotations.initMocks(this);】。2、对于方法的模拟,junit显得更加复杂了【this.context.checking(new Expectations() {{oneOf(mayMockObject).getString(str2);will(returnValue(""));}});】而Mockito只要简单的一行代码就行【Mockito.when(this.mayMockObject.getString(str2)).thenReturn("");】。从上可以看出,Mockito的代码行更少,更加简洁易记!另外需要注意的是:junit只能Mock接口,也就是上面的例子中【MayMockObject】只能为接口,不能为实体类;而Mockito就没有这个限制。
更多文章:
thinkpad e430c(thinkpad e430c参数)
2024年7月13日 04:17