我正在运行EclEmma,Eclipse的Emma插件,并且覆盖率报告仅显示我定义的Enum的部分覆盖,即使它显示Enum中唯一的值被覆盖.我假设支持Enum的隐含方法存在覆盖差距,但我不太确定.
例如,使用此Enum,EclEmma会以绿色突出显示所有内容,但包声明除外:
package com.blah;
public enum UserRole {
HAS_ACCESS
}
Run Code Online (Sandbox Code Playgroud)
如果我提取课程的覆盖范围详细信息,我会看到:
我的问题是,使用EclEmma在我的Enum课程上获得100%覆盖率的最佳方法是什么?
我正在使用slf4j,我想对我的代码进行单元测试,以确保在某些条件下生成警告/错误日志消息.我宁愿这些是严格的单元测试,所以我不想从文件中提取日志配置以测试日志消息的生成.我正在使用的模拟框架是Mockito.
因为我越来越多地使用Grails,我发现自己在多个控制器中编写代码,看起来它应该是域类的一部分.有时,此域代码包含对服务类的调用.例如,我最近编写了一个看起来像这样的域方法:
class Purchase {
// Injected
def paymentService
String captureTransactionId
Boolean captured
// ...
def capture() {
captureTransactionId = paymentService.capturePurchase( this )
captured = captureTransactionId != null
}
Run Code Online (Sandbox Code Playgroud)
我觉得编写这段代码并不是很脏,但我还没有对Grails的最佳设计实践进行研究,所以我想得到一些意见.
Salesforce.com API似乎假设您将始终将该应用程序用作活动用户.他们的身份验证方法(会话ID和OAuth)支持这一点,因为他们都需要经过身份验证的用户"做某事".
当您拥有需要访问API的后台应用程序时,该策略是什么?我见过的示例要求您提供完整凭据 - 用户名,密码和安全令牌.我不仅不想知道或存储该信息,而且可以更改(从密码策略等),因此我宁愿不让应用程序中断.
对于不需要用户交互的SFDC API进行长期认证的"最佳实践"是什么?
最近,我一直在使用better_errors gem,我发现实时shell功能(基本上是你视图中嵌入的Rails控制台)非常有用.我希望能够访问这种可用于调试/诊断目的的实时shell,即使我没有错误.这将是一个非常好的嵌入我的应用程序控制器和限制管理员访问,以便我可以在登台或prod服务器环境中使用它.
有没有其他类似的工具,或者也许是从better_errors中删除实时shell并将其嵌入我的视图中的方法?
我刚刚在Rails应用程序中遇到以下代码行:
scope :for_uid, ->(external_id) { where(external_id: external_id) }
Run Code Online (Sandbox Code Playgroud)
什么是->
运营商意味着什么?这对谷歌来说很难.
我在一个名为node-server
monorepo项目的子目录中有一个nodejs应用程序。
当我直接进行如下所示的推送时,我能够利用heroku-buildpack-monorepo项目来仅将节点服务器目录部署到Heroku:
git push heroku master
这将运行monorepo buildpack,它将子文件夹复制到暂存目录,清除整个根结构,然后用暂存目录的内容替换根目录。然后继续自动检测我的nodejs buildpack,一切正常。
但是现在,我正在尝试设置Heroku CI,以便在我直接提交到Github时自动检测并运行测试并暂存我的应用程序:
git push origin mybranch
我已经按如下所示设置了app.json文件:
{
"environments": {
"test": {
"buildpacks": [
{
"url": "https://github.com/lstoll/heroku-buildpack-monorepo"
},
{
"url": "https://github.com/heroku/heroku-buildpack-nodejs"
}
],
"env": {
"APP_BASE": "node-server"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于,Heroku在暂存测试执行代码时会设置一个只读文件系统,从而使monorepo buildpack无法使用:
-----> Fetching https://github.com/heroku/heroku-buildpack-nodejs buildpack...
buildpack downloaded
-----> Monorepo app detected
rm: cannot remove '/app': Read-only file system
FAILED to copy directory into place
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以使Heroku CI与monorepo配合使用,以便它可以检测buildpack并在子目录中执行测试吗?
多年来我几次使用自分流单元测试模式.正如我最近向某人解释的那样,他们认为它违反了SRP.参数是现在可以出于以下两个原因之一更改测试类:测试更改时,或者测试正在实现的接口上的方法签名发生更改时.在考虑了一段时间后,似乎这是一个正确的评估,但我想得到其他人的意见.思考?
参考:http: //www.objectmentor.com/resources/articles/SelfShunPtrn.pdf
我查看了Grails Mail插件(版本0.9)的代码和文档,它没有我正在寻找的支持.您只能设置单个主体,然后提供指向静态文件的mime附件.我需要实际将模型传递给GSP并让它呈现HTML和纯文本版本,然后在消息中提供这些版本.这将允许非基于HTML的电子邮件客户端显示text/plain部分和支持HTML的客户端以显示text/html部分.
有没有人用Grails做过这个?有没有简单的方法,或者我是否必须修改邮件插件或直接转到Java Mail库?
我正在使用 Maven 构建 GWT 应用程序。我们在 Maven 中使用一个父模块和多个子模块。我们决定为集成测试创建一个单独的模块,因为在同一模块中将集成测试与单元测试分开似乎很麻烦。但是,当我们尝试从单独的 Maven 模块运行 GwtTestCase 测试时,事实证明这是有问题的;具体来说,我们无法找到一种简单的方法来进行测试以查看 Eclipse 或 Maven 中应用程序的入口点。
使用 Maven 时是否有构建 GWT 集成测试的好方法?将它们留在 GUI 模块中并尝试使用 Maven 配置文件将集成测试与单元测试分开是最好的选择吗?