我有以下方法,我希望验证行为
public void methodToTest( Exception e, ActionErrors errors ) {
...
errors.add( "exception.message",
ActionMessageFactory.createErrorMessage(e.toString() ));
errors.add( "exception.detail",
ActionMessageFactory.createErrorMessage(e.getStackTrace()[0].toString() ));
...
}
Run Code Online (Sandbox Code Playgroud)
在我的@Test类中,我希望做这样的事情,以验证errors.add()是用"exception.message"调用,再用"exception.detail"调用
verify(errors).add(eq("exception.message"), any(ActionError.class));
verify(errors).add(eq("exception.detail"), any(ActionError.class));
Run Code Online (Sandbox Code Playgroud)
但Mockito抱怨如下
Argument(s) are different! Wanted:
actionErrors.add(
"exception.message",
<any>
);
Actual invocation has different arguments:
actionErrors.add(
"exception.detail",
org.apache.struts.action.ActionError@38063806
);
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉Mockito检查这两个值?
我现在使用以下代码来断言一个boolean值,但是该方法org.hamcrest.Matchers.is()已被弃用.
assertThat(someValue, is(false));
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的替代语法来测试布尔值而不求助于assertTrue()给出不良的失败消息,如"java.lang.AssertionError"
收到评论/答案后编辑
我最初的担忧是因为Eclipse将以下import语句显示为已弃用

在查看Hamcrest API文档时,该is()方法有3个重载变体,其中只有一个被弃用.
因此,为了澄清来自@mark的评论和来自@matt的答案is(),我在上面发布的使用是有效的而不是弃用的.
我一直在梳理互联网,以获得如何以角度2显示报告的一些线索.到目前为止,我还没有找到任何我可以依赖的东西.如果有人可以帮助我,我将非常感激.
我在这篇文章中遇到了一些聪明的代码,用于将Iterator转换为来自Karol的Stream .我必须承认,我不完全理解如何Iterable在以下代码中将lambda分配给该类型...
static <T> Stream<T> iteratorToFiniteStream(final Iterator<T> iterator) {
final Iterable<T> iterable = () -> iterator;
return StreamSupport.stream(iterable.spliterator(), false);
}
Run Code Online (Sandbox Code Playgroud)
我决定编写自己的小测试以确保它编译和执行,并且确实如此.
public void printsStream_givenIterator()
{
Iterator<String> iterator = Arrays.asList("a", "b", "c").iterator();
final Iterable<String> iterable = () -> iterator;
StreamSupport.stream(iterable.spliterator(), false).forEach(s -> System.out.println(s));
}
// prints: abc
Run Code Online (Sandbox Code Playgroud)
我的理解是lambda () -> iterator充当供应商的职能.
Iterable不是FunctionalInterface,那么如何为它分配这个lambda?
特别是为了编辑Java代码,我想知道我是否可以改变以LOG.表示日志语句的字符串开头的任何代码行的文本颜色.
在这个例子中,我希望能够使LOG语句全部显示为灰色.在阅读大量记录的代码时,它会有所帮助.
public class Foo
{
private static final Logger LOG = LoggerFactory.getLogger(Foo.class);
public void doSomething() {
LOG.info("About to do something");
// code
}
}
Run Code Online (Sandbox Code Playgroud)
这可能比识别单行更困难,因为日志记录可以分成多行,和/或甚至包含在if(LOG.isDebugEnabled) {...}块中.
Visualy我希望这些LOG语句/块看起来像// comments/**/的默认颜色
简而言之
我的命令行Java应用程序将数据从一个数据源复制到另一个数据源而不使用XA.我已经配置了两个单独的数据源,并希望能够回滚两个数据源上的数据的JUnit测试.我使用DBUnit将数据加载到"源"数据库中,但我不能让它回滚.我可以让"目标"数据源回滚.
我的守则
鉴于此配置......
<tx:annotation-driven />
<!-- note the default transactionManager name on this one -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceA" />
</bean>
<bean id="transactionManagerTarget" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceB" />
</bean>
Run Code Online (Sandbox Code Playgroud)
这段代码......
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:resources/spring-context.xml",
"classpath:resources/spring-db.xml"})
@Transactional
@TransactionConfiguration(transactionManager = "transactionManagerTarget", defaultRollback = true)
public class MyIntegrationTest {
@Autowired
private MyService service;
@Autowired
@Qualifier("dataSourceA")
private DataSource dataSourceA;
private IDataSet loadedDataSet;
/**
* Required by DbUnit
*/
@Before
public void setUp() throws Exception {
SybaseInsertIdentityOperation.TRUNCATE_TABLE.execute(getConnection(), getDataSet());
SybaseInsertIdentityOperation.INSERT.execute(getConnection(), getDataSet());
}
/**
* Required …Run Code Online (Sandbox Code Playgroud) 如本文所示,此功能在MySQL中可用,并且根据Sybase文档也应该受到支持,但Sybase不提供有用的示例,因此您必须解释以下内容:
语法1使用指定的表达式列值插入单行或多行.如果指定了多行,则由其他括号分隔
因此我将"附加括号"解释为期望以下代码起作用
create table #tmp_codes (
code varchar(12) NULL
)
insert into #tmp_codes (code)
values
('AAA'),
('BBB'),
('CCC')
Run Code Online (Sandbox Code Playgroud)
但它有错误
Incorrect syntax near ',' on line 7
Run Code Online (Sandbox Code Playgroud)
我正在使用Sybase ASE 15,并且看不到在此支持页面上为INSERT语句插入多行的任何引用
Sybase是否提供此功能?
我是Javascript的新手,由于某些原因我无法使用以下代码,这让我发疯了!
它的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="test" />
<meta name="keywords" content="test" />
<meta name="robots" content="index,follow" />
</head>
<body>
<h1>test</h1>
<p id="demo">something</p>
<button type="button" onclick="myFunction();">Try it</button>
<script type="text/javascript">
function myFunction() {
document.getElementByID("demo").innerHTML = "testttt";
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有谁知道这个问题?
我试图在SSJS中使用视图对象的FTSearchSorted方法.我有基础视图的第一列按升序排序.我尝试了所有不同的参数.它总是给出异常,除非我只将搜索查询作为参数.多米诺版本是8.5.3 FP 2.有什么建议吗?
我有一个 spring-boot 服务,可以读取和写入同一个 IBM MQ 消息代理。该进程是独立的,不在应用程序容器内运行。我想实现“共享事务资源”模式,这样我就不需要配置任何 JTA/XA 事务管理。我的工作顺利,但是以下边缘情况不会回滚消息发布。读取已回滚,但发布仍已提交。
假设MessageListener 收到一条消息
并且使用相同的 JMS ConnectionFactory 将消息发布到另一个队列
消息发布后onMessage() 抛出异常
然后消息会回滚到 READ 队列,不会发布到 WRITE 队列
我的代码看起来像这样......
@Component
public class MyJmsReceiver implements MessageListener
{
@Autowired MyJmsSender myJmsSender;
@Override
public void onMessage(Message message)
{
myJmsSender.sendMessage("some-payload");
if(true) throw new RuntimeException("BOOM!");
}
}
@Component
public class MyJmsSender
{
@Transactional(propagation = Propagation.MANDATORY)
public void sendMessage(final String payload)
{
jmsTemplate.convertAndSend("QUEUE.OUT", payload);
}
}
@Configuration
@EnableJms
@EnableTransactionManagement
public class Config
{
@Bean
public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory)
{ …Run Code Online (Sandbox Code Playgroud) java ×4
angular ×1
dbunit ×1
eclipse ×1
hamcrest ×1
ibm-mq ×1
java-8 ×1
javascript ×1
junit ×1
lambda ×1
lotus-domino ×1
mockito ×1
spring ×1
spring-boot ×1
sybase-ase ×1
unit-testing ×1
xpages ×1
xpages-ssjs ×1