对于规范,我在Ruby-on-Rails项目中有以下文件结构:
/spec
/msd
/service
service_spec.rb
/support
/my_module
requests_stubs.rb
Run Code Online (Sandbox Code Playgroud)
我request_stubs.rb有:
module MyModule::RequestsStubs
module_function
def list_clients
url = "dummysite.com/clients"
stub_request(:get, url).to_return(status: 200, body: "clients body")
end
end
Run Code Online (Sandbox Code Playgroud)
在我的service_spec.rb身上:
require 'rails_helper'
require 'support/my_module/requests_stubs'
...
Run Code Online (Sandbox Code Playgroud)
因为我只想要这个文件中可用的方法.
问题是,在运行测试时我调用该方法MyModule::RequestsStubs.list_clients将在service_spec.rb文件中,我得到以下错误:
Failure/Error:
stub_request(:get, url).to_return(status: 200, body: "clients body")
NoMethodError:
undefined method `stub_request' for MyModule::RequestsStubs:Module
Run Code Online (Sandbox Code Playgroud)
访问WebMock方法时stub_request.
WebMock gem已安装,并且在spec_helper.rb文件中是必需的.
为什么会出现错误?看起来它无法访问WebMock gem,或者不知道如何访问它.关于如何解决它的任何想法?
我有一个带有子模块的项目。尝试将分支(名为release)合并到 中时master,git 识别出一些冲突并引发以下错误:
Fast-forwarding submodule path/to/submodule
Auto-merging path/to/submodule
error: add_cacheinfo failed to refresh for path 'path/to/submodule'; merge aborting.
Run Code Online (Sandbox Code Playgroud)
它完全停止了合并,因为没有显示它的证据git status,尽管我可以看到分支中的一些文件release。如果我运行git merge --abort它也会抱怨:
fatal: There is no merge to abort (MERGE_HEAD missing).
Run Code Online (Sandbox Code Playgroud) 我正在使用 java 和 Drools 6.2.0 开发 Maven 项目,我试图通过 kmodule.xml 文件将某个 DRL 文件“绑定”到 KieBase,但我不断收到错误消息
WARN org.drools.compiler.kie.builder.impl.AbstractKieModule - No files found for KieBase
Run Code Online (Sandbox Code Playgroud)
在运行项目时。
我想我已经以正确的方式配置了一切,如文档中所示(第 4.2.2 章 - 概述 - 构建、部署、利用和运行 - 构建),但看不出我的错误在哪里。
在这个项目中,由于项目架构的原因,我认为通过编码声明/配置 Drools 不是我的选择,这就是我使用 kmodule.xml 方法的原因。
欢迎任何建议。
我的 kmodule.xml(位置:src/main/resources/META-INF):
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="departureKB" packages="com.site.myapp.checks.departure">
<ksession name="departureKS" type="stateless" />
</kbase>
</kmodule>
Run Code Online (Sandbox Code Playgroud)
我的 DRL 文件(虚拟)(位置:src/main/resources/com/site/myapp/checks/departure):
package com.site.myapp.checks.departure
rule "my rule 1"
when
// some conditions
then
// something to do
end
Run Code Online (Sandbox Code Playgroud)
我的班级出发(只有 Drools 代码)(位置:src/com/site/myapp/checks):
channelName …Run Code Online (Sandbox Code Playgroud)