Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
1a31d259
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1a31d259
编写于
8月 15, 2008
作者:
A
Andy Clement
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Parser error message improvements: enhanced harness and used it in new parser error message tests
上级
cf35116a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
12 deletion
+41
-12
org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestCase.java
...g/springframework/expression/spel/ExpressionTestCase.java
+11
-2
org.springframework.expression/src/test/java/org/springframework/expression/spel/ParserErrorMessagesTests.java
...ngframework/expression/spel/ParserErrorMessagesTests.java
+30
-10
未找到文件。
org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestCase.java
浏览文件 @
1a31d259
...
...
@@ -267,10 +267,19 @@ public abstract class ExpressionTestCase extends TestCase {
*/
protected
void
parseAndCheckError
(
String
expression
,
SpelMessages
expectedMessage
,
Object
...
otherProperties
)
{
try
{
Expression
expr
=
parser
.
parseExpression
(
expression
);
SpelExpression
expr
=
parser
.
parseExpression
(
expression
);
SpelUtilities
.
printAbstractSyntaxTree
(
System
.
out
,
expr
);
fail
(
"Parsing should have failed!"
);
}
catch
(
ParseException
pe
)
{
SpelException
ex
=
(
SpelException
)
pe
.
getCause
();
Throwable
t
=
pe
.
getCause
();
if
(
t
==
null
)
{
fail
(
"ParseException caught with no defined cause"
);
}
if
(!(
t
instanceof
SpelException
))
{
t
.
printStackTrace
();
fail
(
"Cause of parse exception is not a SpelException"
);
}
SpelException
ex
=
(
SpelException
)
t
;
if
(
ex
.
getMessageUnformatted
()
!=
expectedMessage
)
{
System
.
out
.
println
(
ex
.
getMessage
());
ex
.
printStackTrace
();
...
...
org.springframework.expression/src/test/java/org/springframework/expression/spel/ParserErrorMessagesTests.java
浏览文件 @
1a31d259
...
...
@@ -21,19 +21,39 @@ package org.springframework.expression.spel;
* @author Andy Clement
*/
public
class
ParserErrorMessagesTests
extends
ExpressionTestCase
{
// TODO (asc) extract expected insert messages into constants (just in case of changes)?
// TODO (asc) review poor messages, marked // POOR below
public
void
testBrokenExpression01
()
{
//
Expression: 0xCAFEBABE - too big to be processed as an int, needs the
L suffix
//
will not fit into an int, needs
L suffix
parseAndCheckError
(
"0xCAFEBABE"
,
SpelMessages
.
NOT_AN_INTEGER
);
evaluate
(
"0xCAFEBABEL"
,
0xCAFEBABE
L
,
Long
.
class
);
}
// parseCheck("true or ");
// parseCheck("tru or false");
// parseCheck("1 + ");
// parseCheck("0xCAFEBABEG");
// TODO 3 too many close brackets - parser recover
// public void testExpressionLists07a() { parseCheck("((3;4;)+(5;6;)))","((3;4)
// + (5;6))");}
// }
// ---
public
void
testBrokenExpression02
()
{
// rogue 'G' on the end
parseAndCheckError
(
"0xB0BG"
,
SpelMessages
.
PARSE_PROBLEM
,
5
,
"mismatched input 'G' expecting EOF"
);
}
public
void
testBrokenExpression03
()
{
// too many closing brackets
parseAndCheckError
(
"((3;4;)+(5;6;)))"
,
SpelMessages
.
PARSE_PROBLEM
,
15
,
"mismatched input ')' expecting EOF"
);
evaluate
(
"((3;4;)+(5;6;))"
,
10
/* 4+6 */
,
Integer
.
class
);
}
public
void
testBrokenExpression04
()
{
// missing right operand
parseAndCheckError
(
"true or "
,
SpelMessages
.
PARSE_PROBLEM
,
-
1
,
"no viable alternative at input '<EOF>'"
);
// POOR
}
public
void
testBrokenExpression05
()
{
// missing right operand
parseAndCheckError
(
"1 + "
,
SpelMessages
.
PARSE_PROBLEM
,
-
1
,
"no viable alternative at input '<EOF>'"
);
// POOR
}
public
void
testBrokenExpression06
()
{
// expression list missing surrounding parentheses
parseAndCheckError
(
"1;2;3"
,
SpelMessages
.
PARSE_PROBLEM
,
1
,
"mismatched input ';' expecting EOF"
);
// POOR
evaluate
(
"(1;2;3)"
,
3
,
Integer
.
class
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录