在Logstash中使用文件输入时,会写入sincedb文件以跟踪受监视日志文件的当前位置.如何理解其内容?
sincedb文件的示例:
286105 0 19 20678374
Run Code Online (Sandbox Code Playgroud) 以下代码段足以重现我的问题:
thrown
属性public
并获取错误org.jboss.weld.exceptions.DefinitionException: WELD-000075: Normal scoped managed bean implementation class has a public field
public
修饰符并获取错误org.junit.internal.runners.rules.ValidationError: The @Rule 'thrown' must be public.
public
修饰符到位并@Dependent
在类上添加注释范围,但是出现了错误org.jboss.weld.exceptions.DefinitionException: WELD-000046: At most one scope may be specified on [EnhancedAnnotatedTypeImpl] public @Dependent @ApplicationScoped @RunWith
我删除了所有不必要的代码,但这是一个非常复杂的单元测试,通过CDI进行模拟,服务注入,并且一些测试方法预计会引发异常.
import org.jglue.cdiunit.CdiRunner;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
@RunWith(CdiRunner.class)
public class FooBarTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void test() {
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,一方面Weld希望所有字段都不公开,因为否则它将无法代理该类,另一方面,JUnit希望规则字段是公共的,因为它使用反射来访问它们setAccessible(true)
由于安全管理器处于活动状态,因此不希望使用该方法.如何处理这个悖论? …
我经常遇到同样的问题:我想使用内存数据库对我的 DAO 执行单元测试。我正在使用 H2,但我相信问题与 HSQLDB 几乎相同。我的单元测试涉及三个步骤:
在非常简单的情况下,可以对所有三个步骤使用完全相同的连接,但是一旦事情变得稍微复杂一点(例如,当使用查询数据库的框架而不是使用直接的PreparedStatements时),每个步骤一个连接需要执行步骤。
问题:一旦连接关闭,数据库似乎就会被删除。怎么解决呢?
我正在开发一个分为几个模块的 j2ee webapp。我有一些元数据,例如用户名和首选项,我想从应用程序的任何地方访问它们,并且可能还收集类似于日志信息但特定于请求的数据并将其存储在这些元数据中,以便我可以选择将其发回作为调试信息给用户。
除了在从上层表示类到下层 daos 的每个方法中传递通用上下文对象或使用 AOP 之外,想到的唯一解决方案是使用与会话 BTW 非常相似的线程本地“上下文”对象,并为对正在进行的请求进行绑定并在响应时解除绑定。
但是这样的事情感觉有点麻烦,因为这打破了几种模式,并且在测试和调试时可能会使事情变得复杂,所以我想问一下根据您的经验是否可以这样进行?
正在修复我们的代码中的错误,发现这个行为不端的奇怪功能:
private String calculate(String a, String b) {
return a == null ? "" : a + a != null && b != null ? "\n" : "" + b == null ? "" : b;
}
Run Code Online (Sandbox Code Playgroud)
匆匆忙忙,我只是添加了一些括号,让它像这样工作:
private String calculatePar(String a, String b) {
return a == null ? "" : a + (a != null && b != null ? "\n" : "") + (b == null ? "" : b);
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,这不是最优雅的做法,但两者实际上都来自我编写的(简化的)测试用例示例.
现在我对有缺陷的第一个功能进行了一些测试,这就是我想到的:
我在我的应用程序中添加了一个受BalusC 代码教程启发的生命周期侦听器,并添加了时间戳以监控每个阶段花费的时间。我原以为“调用应用程序”阶段会花费最长的时间,但是日志让我意识到它花费了大约 827 毫秒,而“渲染响应”阶段花费了 2890 毫秒,然后我想知道在此期间花费了多少时间“渲染响应”阶段。
据我快速浏览后了解规范,在此阶段唯一完成的事情就是“渲染”(并且还保存响应的状态,但在这里无关紧要),而所有应用程序代码都应该更早地调用. 它总是真的吗?
例如,如果我的页面包含一个默认值为 #{myBean.valueAfterPost} 的表单,则 valueAfterPost 的 getter 是在“调用应用程序”期间还是在“渲染响应”期间调用?
什么容易在渲染响应阶段消耗大量时间?
java ×5
cdi ×1
cdi-unit ×1
eclipse ×1
h2 ×1
jakarta-ee ×1
jdbc ×1
jsf ×1
junit ×1
junit-rule ×1
logstash ×1
string ×1
thread-local ×1
tomcat ×1
unit-testing ×1