java - 使用 easymock 注入(inject)静态方法/字段?

标签 java unit-testing mocking powermock easymock

我知道简单模拟的规则之一是它不能注入(inject)静态和最终字段。

但是,

如果我有这样的代码:

public final class SomeClass
{
  private static final AccessInternet accInternet = AccessInternetFactory.getimplmentation();

  public static void startSomeWork()
  {
    final Customer cust = new CurrentCustomerDetails().getCurrent();
    ...
  }
}

那么,在不重写代码本身的情况下,我可以为这样的类编写单元测试吗?有没有办法可以模拟客户并将其注入(inject)到 startSomeWork() 中?

使用 EasyMock 和 jUnit。

谢谢

最佳答案

你可以做这样的事情

Powermock.expectNew(Customer.class).andReturn(whateverSuitsYouAndCustomerClass).anyTimes();
Powermock.replayAll();

为我工作

祝你好运!

关于java - 使用 easymock 注入(inject)静态方法/字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28101457/

相关文章:

java - 使用仅适用于第一次测试的流进行单元测试日志

unit-testing - 单元测试 Maven Mojo - 组件和参数为空

java - JMockit:如何用新的模拟覆盖已经模拟的方法?

php - stub PHP native 方法

java - 我如何知道未修饰的 JFrame 已完全绘制在屏幕上?

java - 为下一个 Activity 获取多个值(value)

java - 抽象类的 Lambda 表达式

java - 这个异常是什么: Cipher buffering error in JCE provider JsafeJCE

java - Jenkins 构建中嵌入式 Mongo DB 测试的 UnknownHostException

python - 如何模拟嵌套函数?