网站效果图怎么做,wordpress头像cdn,罗湖附近公司做网站建设哪家便宜,建网站手机这次#xff0c;我想对测试框架Mockito进行概述。 毫无疑问#xff0c;这是用于测试Java代码的最受欢迎的工具之一。 我已经对Mockito的竞争对手EasyMock进行了概述。 这篇文章将基于有关EasyMock的示例应用程序。 我的意思是代表咖啡机功能的类。 用Mockito准备测试 通常我想对测试框架Mockito进行概述。 毫无疑问这是用于测试Java代码的最受欢迎的工具之一。 我已经对Mockito的竞争对手EasyMock进行了概述。 这篇文章将基于有关EasyMock的示例应用程序。 我的意思是代表咖啡机功能的类。 用Mockito准备测试 通常我将使用Maven进行项目设置。 因此要使Mockito在项目中可用我需要在pom.xml文件中添加以下依赖项 dependenciesdependencygroupidorg.mockito/groupidartifactidmockito-all/artifactidversion1.9.5/version/dependencydependencygroupidjunit/groupidartifactidjunit/artifactidversion4.11/version/dependency/dependencies 请注意Mockito的正常功能不需要JUnit可以用相同的方法使用TestNG来代替它。 因此您可以根据自己的决定使用JUnit或TestNG。 让我们进一步。 如前所述本文中的所有测试都是针对EasyMock帖子中的示例应用程序编写的。 您可以从此处仅阅读“应用程序代码”部分。 这足以了解测试的主题。 Mockito和JUnit测试 我想从关于Mockito框架的几句话开始本节。 毫无疑问借助Mockito您可以完成测试中希望做的所有事情。 您可以在清除API的帮助下创建模拟存根进行验证以及所有这些操作。 现在该看看使用Mockito进行单元测试的样子了。 import static org.junit.Assert.*;
import static org.mockito.Mockito.*;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;import com.app.data.Portion;
import com.app.exceptions.NotEnoughException;
import com.app.mechanism.CoffeeMachine;
import com.app.mechanism.interfaces.ICoffeeMachine;
import com.app.mechanism.interfaces.IContainer;RunWith(MockitoJUnitRunner.class)
public class CoffeeMachineTest {ICoffeeMachine coffeeMachine;MockIContainer coffeeContainer;MockIContainer waterContainer;Beforepublic void setUp() {coffeeMachine new CoffeeMachine(coffeeContainer, waterContainer);}Afterpublic void tearDown() {coffeeContainer null;waterContainer null;coffeeMachine null; }Testpublic void testMakeCoffe() throws NotEnoughException {when(coffeeContainer.getPortion(Portion.LARGE)).thenReturn(true);when(waterContainer.getPortion(Portion.LARGE)).thenReturn(true);assertTrue(coffeeMachine.makeCoffee(Portion.LARGE));}Testpublic void testNotEnoughException() throws NotEnoughException {when(coffeeContainer.getPortion(Portion.SMALL)).thenReturn(false);when(waterContainer.getPortion(Portion.SMALL)).thenReturn(true);assertFalse(coffeeMachine.makeCoffee(Portion.SMALL));}} 我将用几句话解释一下测试班里发生了什么。 我正在测试咖啡机为此我为咖啡容器和水容器创建了模拟。 进一步在测试中我将为模拟定义一些行为并根据这台咖啡机执行预期的操作。 ...MockIContainer coffeeContainer;MockIContainer waterContainer;
... 在上面的代码中我声明了两个模拟。 以这种方式创建模拟需要将RunWithMockitoJUnitRunner.class批注应用于测试类。 或者您可以使用MockitoAnnotations.initMockstestClass; 在运行任何测试之前例如您可以将此代码段放入Before注释的方法中。 ...
when(coffeeContainer.getPortion(Portion.LARGE)).thenReturn(true);
... 在Mockito中定义模拟的行为非常方便。 您可以指定在调用特定方法后应返回的内容。 注意我在测试类中进行了几次静态导入 。 摘要 Mockito框架征服了我的心。 这非常方便其API清晰使用简便。 Mockito包含许多在单元测试开发过程中可能需要的方法。 当然一篇文章太小而无法描述Mockito的所有功能因此我建议您使用官方文档的跟随链接进行更深入的研究。 参考 Fruzenshtein的便笺博客中来自JCG合作伙伴 Alexey Zvolinskiy的JUnit和Mockito合作 。 翻译自: https://www.javacodegeeks.com/2013/05/junit-and-mockito-cooperation.html