使用IntelliJ 2016.2.
使用Gradle 2.14.1
我有2个项目,每个项目都有自己的build.gradle文件和单独的目录结构:
myLib (meant to be jarred and used by others)
- build.gradle
- settings.gradle
- src/main/java/...
sandbox (spring boot web app)
- build.gradle
- settings.gradle
- src/main/java/...
- src/main/resources/...
Run Code Online (Sandbox Code Playgroud)
希望你能得到这张照片.在IntelliJ中,我有以下模块结构,在同一级别(没有子项目):
- myLib
- sandbox
Run Code Online (Sandbox Code Playgroud)
简单的请求......我想myLib在sandbox应用程序中使用.我想在同一个项目中同时开发这两个模块.
我试着增加一个模块依赖于sandbox对myLib内部的IntelliJ.没有骰子.我试过添加一个jar参考,没有骰子.
我相信我需要在build.gradle文件中添加一个依赖项,但无法弄清楚如何.我试过compile files '<path to myLib.jar>',等等没有骰子.
使用适用于 Grails 的 Apache Camel 插件。使用 ftp 端点并希望通过修改日期处理文件。使用“...&sortBy=file:modified”url 参数无法按预期工作。它忽略日期并按文件名排序。我尝试过几个版本,例如“reverse:file:modified”和“date:file:yyyyMMddmmssSSS”。平台是在 Linux 上运行的 Grails 2.3.5。
埃里克·蒂亚
这不是一个问题,但可能是关于grails中的一般单元测试的评论请求.
我一直在反对编写单元测试,除了非常非常简单的用例外,我总是碰到一些障碍.我发现的是任何时候需要嘲笑的东西,比如grailsApplication,或者其他一些框架对象,单元测试开始分崩离析,或者你需要跳过这么多箍,以致它会适得其反.然后,除此之外,从1.X迁移到2.X引起了各种单元/集成测试重构,从长远来看这使得事情变得更容易,但在迁移期间仍然导致失败.
我的答案......将所有半复杂的测试转移到集成测试中,不要回头看.一切都在旋转的时候它会起作用.运行需要更长的时间,但不会超过处理单元测试头痛的时间.
导致我心痛的最新而非第一个用例是尝试对创建域对象的服务进行单元测试,该对象依赖于grailsApplication.config,并对所述域对象执行某些操作.我尝试了解决它的大部分内容(除了实际工作之外!),没有任何效果,我将单元测试代码移动到集成测试,并在第一次运行时传递.单元测试抱怨无法在null对象或类似的东西上调用'config',这意味着grailsApplication不存在.
当集成测试始终适用于所有事情时,我真的不认为需要编写单元测试.
使用grails 2.2.0.
尝试使用Paypal沙箱通过grails项目中的集成测试来测试Paypal付款.在这个阶段,我正在尝试使用REST API创建Paypal支付.
代码段:
def jsonPaypalPayment ='''
{
"intent": "sale",
"redirect_urls": [{
"return_url": "http://<return URL here>",
"cancel_url": "http://<cancel URL here>"
}],
"payer": {
"payment_method": "paypal"
},
"transactions": [{
"amount": {
"total": "0.10",
"currency": "USD",
},
"description": "This is the payment transaction description."
}]
}
'''
def client = new RESTClient("https://api.sandbox.paypal.com")
client.contentType = ContentType.JSON
client.headers.'Authorization' = "${tokenType} ${accessToken}"
def resp = client.post(path: "/v1/payments/payment", body: jsonPaypalPayment)
Run Code Online (Sandbox Code Playgroud)
在上一步中成功检索tokenType和accessToken.
post方法返回"400 Bad Request"响应.使用非常小的mod从文档中获取样本请求.
完整的调试输出:
2013-05-14 12:31:08,276 <> [main] DEBUG impl.conn.SingleClientConnManager - Get connection for route HttpRoute[{s}->https://api.sandbox.paypal.com] …Run Code Online (Sandbox Code Playgroud) grails ×2
apache-camel ×1
api ×1
gradle ×1
java ×1
paypal ×1
rest ×1
sorting ×1
unit-testing ×1