Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Quincy379
jadx
提交
cd6f6b7a
J
jadx
项目概览
Quincy379
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cd6f6b7a
编写于
3月 22, 2019
作者:
A
Ahmed Ashour
提交者:
skylot
3月 22, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test: add NotYetImplemented feature (PR #495)
上级
cdaecb31
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
63 addition
and
0 deletion
+63
-0
jadx-core/src/test/java/jadx/NotYetImplemented.java
jadx-core/src/test/java/jadx/NotYetImplemented.java
+24
-0
jadx-core/src/test/java/jadx/NotYetImplementedExtension.java
jadx-core/src/test/java/jadx/NotYetImplementedExtension.java
+39
-0
未找到文件。
jadx-core/src/test/java/jadx/NotYetImplemented.java
0 → 100644
浏览文件 @
cd6f6b7a
package
jadx
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* Indicates a test which is known to fail.
*
* <p>This would cause a failure to be considered as success and a success as failure,
* with the benefit of updating the related issue when it has been resolved even unintentionally.</p>
*
* <p>To have an effect, the test class must be annotated with:
*
* <code>
* @ExtendWith(NotYetImplementedExtension.class)
* </code>
* </p>
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
({
ElementType
.
TYPE
,
ElementType
.
METHOD
})
public
@interface
NotYetImplemented
{
}
jadx-core/src/test/java/jadx/NotYetImplementedExtension.java
0 → 100644
浏览文件 @
cd6f6b7a
package
jadx
;
import
java.lang.reflect.Method
;
import
java.util.HashSet
;
import
java.util.Set
;
import
org.junit.jupiter.api.extension.AfterTestExecutionCallback
;
import
org.junit.jupiter.api.extension.ExtensionContext
;
import
org.junit.jupiter.api.extension.TestExecutionExceptionHandler
;
public
class
NotYetImplementedExtension
implements
AfterTestExecutionCallback
,
TestExecutionExceptionHandler
{
private
Set
<
Method
>
knownFailedMethods
=
new
HashSet
<>();
@Override
public
void
handleTestExecutionException
(
ExtensionContext
context
,
Throwable
throwable
)
throws
Throwable
{
if
(!
isNotYetImplemented
(
context
))
{
throw
throwable
;
}
knownFailedMethods
.
add
(
context
.
getTestMethod
().
get
());
}
@Override
public
void
afterTestExecution
(
ExtensionContext
context
)
throws
Exception
{
if
(!
knownFailedMethods
.
contains
(
context
.
getTestMethod
().
get
())
&&
isNotYetImplemented
(
context
)
&&
!
context
.
getExecutionException
().
isPresent
())
{
throw
new
AssertionError
(
"Test "
+
context
.
getTestClass
().
get
().
getName
()
+
'.'
+
context
.
getTestMethod
().
get
().
getName
()
+
" is marked as @NotYetImplemented, but passes!"
);
}
}
private
static
boolean
isNotYetImplemented
(
ExtensionContext
context
)
{
return
context
.
getTestMethod
().
get
().
getAnnotation
(
NotYetImplemented
.
class
)
!=
null
||
context
.
getTestClass
().
get
().
getAnnotation
(
NotYetImplemented
.
class
)
!=
null
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录