小编seb*_*ebi的帖子

Easy mock无法识别模拟服务

我在测试我的一个服务时遇到了这个奇怪的问题...我正在用easymock 3.0嘲笑两个服务并用Spring注入它们,但是我得到了一个"java.lang.IllegalArgumentException:not a mock:$ Proxy43"异常他们.我在配置文件中以相同的方式声明它们,如下所示:

<bean id="recurringSchedulesJobsService" class="org.easymock.EasyMock" factory-method="createMock">
    <constructor-arg value="com.spmsoftware.recurringschedules.service.RecurringSchedulesJobsService"/>
</bean>

<bean id="jobPeriodService" class="org.easymock.EasyMock" factory-method="createMock">
    <constructor-arg value="com.spmsoftware.jobdefinition.service.JobPeriodService"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

在我的junit测试中,我按照以下方式使用它们:

@Autowired
private RecurringSchedulesJobsService recurringSchedulesJobsService;
@Autowired
private JobPeriodService jobPeriodService;

@Before
public void setUp() throws Exception {
    reset(recurringSchedulesJobsService);
    expect(recurringSchedulesJobsService.getBasedOnRecurringScheduleId(RECURRING_SCHEDULE_ID)).andReturn(buildRecurringScheduleJob());
    replay(recurringSchedulesJobsService);

    reset(jobPeriodService);
    expect(jobPeriodService.findPeriodByJobId(RECURRING_SCHEDULE_JOB_ID)).andReturn(buildJobDefinitionPeriod());
    replay(jobPeriodService);
}
Run Code Online (Sandbox Code Playgroud)

recurringSchedulesJobsService被模拟,当我评论第二个服务时,它的行为与预期一致.另一方面,jobPeriodService不被识别为模拟.相反,我得到这个例外:

java.lang.IllegalArgumentException: Not a mock: $Proxy43
at org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:66)
at org.easymock.EasyMock.getControl(EasyMock.java:2068)
at org.easymock.EasyMock.reset(EasyMock.java:1983)
at com.spmsoftware.recurringschedules.occurrences.generator.OccurrenceGeneratorTest.setUp(OccurrenceGeneratorTest.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
at …
Run Code Online (Sandbox Code Playgroud)

java junit spring unit-testing easymock

3
推荐指数
1
解决办法
5323
查看次数

Intellij-在多个git本地分支之间切换

我在具有多个模块的项目上使用Intellij。我已经开始进行大型重构,并为3个模块创建了本地分支。每个分支具有相同的名称。当前,我必须检出它们中的每一个(对于每个模块)。有没有办法进行全局结帐?还是为所有模块创建一个分支?谢谢。

git intellij-idea

3
推荐指数
1
解决办法
1万
查看次数

创建一组函数

我有以下函数接收函数列表:

(defn foo
  [fn-list]
  (map #(%) fn-list))
Run Code Online (Sandbox Code Playgroud)

我想将此bar函数的实例作为参数传递给它.

(defn bar
  [x]
  (println x))
Run Code Online (Sandbox Code Playgroud)

我的问题是我只有一个参数列表bar.Fox的例子,一个简单的列表("a" "b" "c").我想创建一个bar函数列表,每个函数都有一个参数,后面的集合的元素.

有人能告诉我这是怎么做到的吗?谢谢.

注意:我不能简单地foo(map bar ("a" "b" "c"))合理的原因替换.

collections clojure higher-order-functions

3
推荐指数
1
解决办法
67
查看次数

将ruby变量传递给配置器

我有一个Vagrant文​​件定义了这样的供应商:

config.vm.provision :shell, :path => "set_rmi_hostname.sh", :args => "<ip_address> <target>"
Run Code Online (Sandbox Code Playgroud)

ip_address和target是同一文件中定义的ruby变量:

ip = Socket.ip_address_list.detect{|intf| intf.ipv4_private?}
ip_address = ip.ip_address if ip
target = "my_target"
Run Code Online (Sandbox Code Playgroud)

如何扩展这两个变量并将它们传递给我的脚本?谢谢

provisioning vagrant

3
推荐指数
1
解决办法
2093
查看次数

在Clojure中传递一个带参数作为参数的函数

我有这个函数,它将一组函数作为参数:

(defn- main-func
  [fn-list]
...)
Run Code Online (Sandbox Code Playgroud)

我通常称之为:

(main-func [f1 f2 ...])
Run Code Online (Sandbox Code Playgroud)

但是f1并且f2都是无法工作的.如何在此调用中包含带参数的函数?我搜索谷歌但没有成功.谢谢

parameters function clojure higher-order-functions

2
推荐指数
1
解决办法
3628
查看次数

在Slick中执行SQL强制转换

使用Slick,我知道我可以将sql函数映射到scala值,如下所示:

val toChar = SimpleFunction.binary[Date, String, String]("TO_CHAR")
Run Code Online (Sandbox Code Playgroud)

并称之为:

toChar.apply(dateColumn, "yyyy-MM-dd")
Run Code Online (Sandbox Code Playgroud)

有没有办法映射这个CAST功能?它有不同的形式:CAST(dateColumn AS CHAR)

谢谢!

sql scala slick

2
推荐指数
1
解决办法
808
查看次数

scala中的序列转换

在scala中,有一种简单的方法可以转换这个序列

Seq(("a", 1), ("b", 2), ("a", 3), ("c", 4), ("b", 5))

进入这个Seq(("a", 4), ("b", 7), ("c", 4))

谢谢

functional-programming scala

1
推荐指数
1
解决办法
101
查看次数