java mock工具(java mockito)

网友投稿 373 2023-04-26


本篇文章给大家谈谈java mock工具,以及java mockito对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java mock工具的知识,其中也会对java mockito进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

mock java 干什么用的

在单元测试中java mock工具,经常需要进行一些mock操作。现在已经有了一些比较不错的框架在做这些事情,比如:EasyMck,java mock工具他在大多数情况下运行良好,但是对于某些结构的设计却显得无能为力。
EasyMock等众多的mock框架仅能mock一些public,non static or final的方法,在大多数情况下这并没有什么问题,他可以处理大多数的问题,但是当测试的代码包含了一些静态方法。
Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,
都是单元测试的框架。例如你写了一个程序 在功能测试也就是整体测试前 想知道它的对错就可以借用这些工具写个单元测试案例 单独测试这个类 或者某部分程序对错

如何对Java单例模式进行mock

public class HelloWorld {
    private static HelloWorld instance = new HelloWorld();
    private HelloWorld() {}
    public static HelloWorld getInstance() {return instance;}
    public void say() {
        System.out.println("Hello World!");
    }
}
public class HelloWorld {
    private static HelloWorld instance = new HelloWorld();
    private HelloWorld() {}
    public static HelloWorld getInstance() {return instance;}
    public void say() {
        System.out.println("Hello World!");
    }
}

测试代码:

public class HelloWorldAppTest {
    private HelloWorldApp helloWorldApp;
    @Before
    public void setUp() throws Exception {
        helloWorldApp = new HelloWorldApp();
    }
    @Test
    public void sayHelloWorld() throws Exception {
        HelloWorld instanceMock = PowerMockito.mock(HelloWorld.class);
        Whitebox.setInternalState(HelloWorld.class, "instance", instanceMock);
        Mockito.doNothing().when(instanceMock).say();
        helloWorldApp.sayHelloWorld();
        Mockito.verify(instanceMock).say();
    }
}

java 如何mock参数

package cn.outofmemory.junit.jmockit;
import mockit.NonStrictExpectations;
import mockit.Injectable;
import mockit.MockUp;
import mockit.Mocked;
import mockit.Mockit;
import mockit.NonStrict;
import mockit.Tested;
public class MockTargetTest {
    @BeforeClass
    static public void beforeClass() {
        Mockit.setUpMocks();
    }
    @Mocked
    private MockTarget mt;
    @Test
    public void testPrivateMethodMock() {       
        new NonStrictExpectations(mt) {
            {
                // 对私有方法进行mock  
                this.invoke(mt, "privateMethod", anyString);  
                result = "Hello Object";  
            }
        };
        Object actual = mt.publicMethod();
        assertEquals(actual,"Hello Object");
    }
}

北大青鸟java培训:JavaScript代码测试必备的12款工具?

1、JasmineJasmine是一个行为驱动的测试开发框架,用于对JavaScript代码进行测试。
它不依赖其它任何JavaScript框架,也不需要DOM。
它的语法简洁、明确,写测试非常容易。
2、MochaMocha是一个功能丰富的JavaScript测试框架,既运行于Node.js环境中,也可以运行于浏览器环境中。
Mocha以串行方式运行测试,能做出灵活而准确的报告,也能将测试中未捕捉的异常映射到正确的测试用例。
3、ChaiChai是个支持BDD/TDD的库,可用于node和浏览器,可配合任何JavaScript测试框架使用。
4、QUnitQUnit是个功能强大又易于使用的JavaScript单元测试框架。
jQuery、jQueryUI和jQueyMobile项目都使用这个框架,它能测试普通的JavaScript代码。
5、SinonSinon.JS为JavaScript提供了独立的spies、stubs和mocks[译者注:Spy、Stub和Mock都是测试专用名词,Stub常被翻译为桩,spies是Spy的复数形式,是一种可以监视方法、调用和参数的技术]。
它不依赖任何东西,可以配合任何单元测试框架工作。
6、KarmaKarma是针对连通浏览器的一个框架无关测试运行器。
每一个测试结果对应每个浏览器,它的测试和显示都是通过命令行暴露给开发者的,这样他们就可以看到浏览器测试的通过或失败。
7、SeleniumSelenium有一个简单的目标:就是自动化浏览器。
它主要用于自动化测试web应用程序,但是只是很简单地考虑到了基于网络的管理任务。
8、WebdriverIOWebdriverIO允许用户仅添加几行代码就可以控制浏览器或移动应用程序,使测试代码更简单、简洁、易读。
集成的TestRunner同样允许你以同步的方式调用异步命令,这样你不需要关心如何处理Promise以避免竞态条件。
此外,它取消了所有的繁琐的设置工作,并且会为您管理的Selenium会话。
9、NightwatchNightwatch.js是一个易于使用的Node.js,它是为基于浏览器的app和网站设计的终端到终端(E2E)的测试方法。
它使用强大的W3CWebDriverAPI,用于在DOM元素上执行命令和断言。
10、PhantomCSSPhantomCSS获得CasperJS捕获的屏幕截图,并使用Resemble.js将其与基准图进行对比,以测试RGB像素差异。
java课程http://www.kmbdqn.cn/发现PhantomCSS然后生成图像差异对比,用于帮助您找到原因。
11、PhantomFlowPhantomFlow使用决策树提供UI测试方案。
针对PhantomJS,CasperJS和PhantomCSS的NodeJS包装器——PhantomFlow能够流畅地在代码中描述用户流程,同时生成用于可视化的结构化树数据。

优雅单测-3用Mockito轻松解决复杂的依赖问题

Mockito是GitHub上用于Java使用最广泛的Mock框架

Mockito核心解决的问题:不管是测试驱动开发,还是系统架构本身,都会带来的依赖结构复杂问题;单元测试做软件中的最小可测试单元,只应依当前单元的配置。 所有较大的系统都会有依赖复杂的问题。 此类问题就需要Mock框架来解决

使用很简单一般分3部:

@MockBean,在SpringBoot中通过@MockBean注解,就可以快速装在一个Mock的Bean了。

此方式通过非常简单的方式解决了系统层级之间单测的依赖,可以用在数据层和业务层,也可以用在业务层之间的多项依赖等依赖上的问题

直接执行:

可以看到如果使用了SpringBoot,并且使用@MockBean可以快速解决依赖的问题。但是,Mock出的LiveReportMapper对象其实是个空壳,那么既然是mock就要知道如何通过mock的方式解决各种复杂逻辑

下面模拟2种复杂逻辑,Service层的单元测试mock依赖的另外一个Service类"InfoService" ,并且mock里面的2个方法

下面看例子:

如果没有SpringBoot环境的Starter,可以直接使用Mockito。 除了@MockBean不能使用其他功能不受影响,参考上面例子

更多用法参考Mockito官方文档,此处不做赘述

官网地址: https://site.mockito.org/

关于java mock工具和java mockito的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java mock工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java mockito、java mock工具的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java国际化简介_动力节点Java学院整理
下一篇:基于StringUtils工具类的常用方法介绍(必看篇)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~