`
tracyhuyan
  • 浏览: 83128 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Mock private method

 
阅读更多
  1. 在test case 的class级别加注解:@RunWith(PowerMockRunner.class )
  2. 在test case 的class级别加注解:@PrepareForTest(ClassWithPrivateMethod.class)
  3. Use PowerMock.createPartialMock(ClassWithPrivateMethod.class, "nameOfTheMethodToMock") to create a mock object that only mocks the method with name nameOfTheMethodToMock in this class (let's call it mockObject ).
  4. Use PowerMock.expectPrivate(mockObject, "nameOfTheMethodToMock", argument1, argument2) to expect the method call to nameOfTheMethodToMock with arguments argument1 and argument2 .
  5. Use PowerMock.replay(mockObject) to change the mock object to replay mode.
  6. Use PowerMock.verify(mockObject) to change the mock object to verify mode.


在mock private方法时,如果private方法在mockObject的static方法里面,直接调用static方法, mock的


private方法将不会预期执行。

 

分享到:
评论

相关推荐

    google mock cookbook 中译本

    模拟类需要将MOCK_METHOD*宏放入其public部分中,即使被模拟的方法在基类中是protected或private。 例如,如果有一个基类Foo,定义了三个虚函数: ```cpp class Foo { public: virtual bool Transform(Gadget* g)...

    转:google mock C++单元测试框架-奋飞的菜鸟-ChinaUnix博客1

    7. **Mock protected、private 方法**:Google Mock 提供了工具可以模拟类的保护(protected)和私有(private)成员函数,这在测试需要内部行为时非常有用。 Google Mock 的使用通常包含以下步骤: - 引入必要的库...

    Mock初学教程

    ### Mock初学教程 #### 学习目标与背景 本文档旨在为初学者提供一份全面且易懂的Mock技术入门指南。Mock技术在软件测试领域扮演着至关重要的角色,尤其是在单元测试过程中,它帮助我们模拟复杂的依赖关系,使得...

    Instant Mock Testing with PowerMock.pdf

    Instant Mock Testing with PowerMock 7 Saying Hello World! (Simple) 8 Getting and installing PowerMock (Simple) 14 Mocking static methods (Simple) 22 Verifying method invocation (Simple) 28 Mocking ...

    PHP测试框架Shmock.zip

    name and configure expected * mock interaction with $conf_closure * @return Shmock A fully configured mock object * @note You do not need this protected method if you use ...

    使用 FactoryBean结合Jmock实现动态Mock类的注入

    <bean id="myBean" factory-bean="myFactory" factory-method="getObject"/> ``` 在这个例子中,`myBean`实际上是由`myFactory`创建的对象。 接下来,我们要引入Jmock,这是一个用于Java的模拟框架,可以让我们在...

    利用PowerMock模拟静态方法和私有方法的示例

    public void testPrivateMethod() { // 模拟私有方法 when(YourClass.class.getDeclaredMethod("yourPrivateMethod", argTypes...)) .thenReturn(yourReturnValue); // 调用包含私有方法的公共方法 String ...

    Mockito-Programming-Cookbook

    - 示例:`doThrow(new Exception("An exception")).when(mockObject).methodName();` 7. **快速创建模拟对象**: - 使用 `Mockito.mock()` 方法快速创建模拟对象。 - 示例:`MyClass mockObject = Mockito.mock...

    第六章 Spring4 方法替换

    在Spring框架中,方法替换(Method Replacement)是一种允许我们动态地改变或增强对象行为的技术。这种技术在某些情况下非常有用,比如单元测试、模拟(mocking)或者在运行时调整应用的行为。在Spring4中,我们可以...

    MockInject:用于 Kiwi 测试的 Objective C Global Mock Injector

    这是一个可以使用 MockInject 库进行模拟的示例: //private class method- (void)showAlert{UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Log in Failed" message:@"Username or password was ...

    TransparentMoq

    透明起订量 从NSubstitute,...private Mock<IFileSystem> fileSystem = new Mock(); 写 private IFileSystem fileSystem = New.Mock(); 代替 MethodThatTakesFileSystem(fileSystem.Object); 写 Method

    jTester使用指南(带书签).pdf

    private MyService myService; public void testService() { // 使用 myService 进行测试 } } ``` **5.3 @AutoBeanInject 规则详解** - **规则说明**:根据一定的命名规则自动注入 bean。 **5.4 Spring ...

    jMock基本使用方法

    private Mock userDAO = null; public UserServiceTest(String testName) { super(testName); } protected void setUp() throws Exception { userDAO = mock(UserDAO.class); userService.setUserDAO(...

    基于MOQ 单元测试的 demo程序

    private readonly IRepository _repository; public Service(IRepository repository) { _repository = repository; } public void DoSomething() { // 业务逻辑... _repository.Save(); } } [Test...

    Laravel开发-laravel-httplug

    private function createRequest(string $method, string $url): RequestInterface { return new \Http\Message\Request($method, $url); } } ``` 以上代码展示了如何创建并发送一个GET请求。`createRequest`...

    Java编程中void方法的学习教程

    其中,`accessModifier`是访问修饰符(如`public`, `private`, `protected`或默认),`returnType`是`void`,`methodName`是方法名,`parameters`是方法参数列表(可选)。如果方法不需要参数,参数列表为空括号`()...

    SampleEasymockConstructor:如何在测试运行时用参数替换具有构造函数的类的新实例的示例

    public void testPrivateMethod() throws Exception { MyClass myClass = PowerMockito.mock(MyClass.class); // 使用PowerMockito创建模拟对象 Method privateMethod = MyClass.class.getDeclaredMethod(...

    getting-started-springmvc:在Spring MVC框架中使用Twilio的简介

    @RequestMapping(value = "/sendSms", method = RequestMethod.GET) public @ResponseBody TwiMLResponse sendSms(@RequestParam("to") String toNumber) { Message message = new Message().setBody("Hello from...

    PHP经典设计模式之依赖注入定义与用法详解

    3. 方法注入(Method Injection):依赖对象是通过一个公共方法传入。 以上三种方式在实际应用中可以单独使用,也可以组合使用。其中,构造函数注入是最常见的实践方式,因为它能保证在对象创建时依赖关系就已经被...

    MockingPresentation:包含 Mockito 和 PowerMock 使用示例

    - **测试方法(Test Method)**:每个测试方法会调用待测试的代码,然后使用 `verify()` 确保模拟对象的行为与预期一致。 - **被测试类(Class Under Test)**:包含了需要进行单元测试的代码,这些代码可能依赖于...

Global site tag (gtag.js) - Google Analytics