我知道可以模拟单个枚举(使用如何使用Mockito/Powermock模拟枚举单例类?),但我有1000个枚举值,它们可以调用5个不同的构造函数.枚举值通常在开发中发生变化.
我想真的只为我的JUnit测试模拟一两个.我不关心其余部分,但它们仍然是实例化的,它会调用一些讨厌的东西,它们从文件系统加载枚举的值.
是的我知道这是非常糟糕的设计.但是现在我没有时间改变它.
目前我们正在使用Mockito/powermock.但任何框架,可以解决这个问题,我的意思是糟糕的设计是受欢迎的.
假设我有一个与此类似的枚举:
public static enum MyEnum {
A(OtherEnum.CONSTANT),
B("1"),
C("1", OtherEnum.CONSTANT),
//...and so on for again 1000 enum values :(
private double value;
private String defaultValue;
private OtherEnum value;
/* Getter/Setter */
/* constructors */
}
Run Code Online (Sandbox Code Playgroud) 我的 CI 构建在 OWASP 依赖项检查中失败。例如
[HIGH] CVE-2021-37136 - io.netty:netty-codec-4.1.66.Final
Run Code Online (Sandbox Code Playgroud)
我知道我可以添加抑制来owaspDependencyCheckSuppressions.xml解决这个问题。
这是我以前没有做过的事情,但这里有一个指南 - https://jeremylong.github.io/DependencyCheck/general/suppression.html 上面写着......
“使用 HTML 报告抑制这些误报相当容易。在报告中,每个已识别的 CPE 旁边(以及 CVE 条目上)都有一个抑制按钮。单击抑制按钮将创建一个对话框,您可以简单地按 Control-C复制要放入抑制 XML 文件中的 XML”
我有 2 个问题
#1 你知道我在哪里可以找到这份 HTML 报告吗?我认为它可能在 CI 中链接(我正在使用 Circle CI),但我在那里找不到它:(
#2 指南中给出了抑制示例
<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
<suppress>
<notes><![CDATA[
file name: some.jar
]]></notes>
<sha1>66734244CE86857018B023A8C56AE0635C56B6A1</sha1>
<cpe>cpe:/a:apache:struts:2.0.0</cpe>
</suppress>
</suppressions>
Run Code Online (Sandbox Code Playgroud)
指南接着说
“上面的 XML 文件将抑制任何具有匹配 SHA1 哈希值的文件中的 cpe:/a:apache:struts:2.0.0。”
“任何文件”是什么意思?这是否意味着任何使用依赖关系的 Java 类?
谢谢 :)
我有一份SSRS报告,其中日期应按项目类别分组,类别中的项目代码在组中重复如何抑制值
请帮我理解一下.
谢谢,brijit
我有几个CA1704:IdentifiersShouldBeSpelledCorrectly我想要压制的代码分析警告.基本上,它们指的是被认为拼写错误的公司名称.
公司名称是我项目中几个名称空间的一部分,为了抑制所有警告,我需要在GlobalSuppressions文件中添加大量的抑制.有没有办法在GlobalSuppressions文件的一行中禁止所有这些警告,以防止我的GlobalSuppressions文件变得过于混乱?
我正在使用valgrind来检测内存泄漏.valgrind的输出由命令生成
valgrind -v --leak-check=full ../spython test.py 2>/tmp/log
Run Code Online (Sandbox Code Playgroud)
事实上,我的程序是一个高度简化的python解释器(家庭作业ToT),你可以从名称推断 spython test.py
困扰我的是底部的输出
==24269== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 3 from 3)
--24269--
--24269-- used_suppression: 3 dl-hack3-cond-1
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我抬头看,dl-hack3-cond-1valgrind的抑制文件中没有default.supp.我想消除这个恼人的抑制错误(这意味着通过valgrind测试,而不是'抑制抑制').
这是/ tmp/log的内容:
==24269== Memcheck, a memory error detector
==24269== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==24269== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==24269== Command: ../spython test.py
==24269==
--24269-- Valgrind options:
--24269-- -v
--24269-- --leak-check=full
--24269-- Contents of /proc/version: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用抑制过滤器,但会发生意外错误.
以下是错误消息.
"无法初始化模块SuppressionFilter - 无法将模块SuppressionFilter中的属性'file'设置为'checkstyle-suppressions.xml':无法找到checkstyle-suppressions.xml - 文档根元素"suppressions",必须与DOCTYPE根"module"匹配."
你能让我知道如何解决这个错误吗?
以下是我使用的配置文件和抑制文件内容.我通过eclipse菜单配置了抑制过滤器(windows> preferences> checkstyle> configure>已知模块Filter> Suppression Filter> add)
======================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1"/>
</module>
</module>
</module>
Run Code Online (Sandbox Code Playgroud)
===================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<suppressions>
<suppress checks="MagicNumberCheck"
files="Home.java"
lines="350-370"/>
</suppressions>
Run Code Online (Sandbox Code Playgroud) 我遇到了一个令人不安的情况,我希望Java抱怨(通过IllegalArgumentExceptionfrom Throwable.addSuppressed)两次抛出相同的异常,一次来自try-with-resources块,一次来自AutoCloseable类的close()例程.我在下面创建了一个简单的测试用例,突出了问题.
我使用以下代码运行JDK 1.7.0_65:
public class TestDoubleThrow {
public static void main(String[] args) {
class TestA implements AutoCloseable {
RuntimeException e;
public TestA(RuntimeException e) { this.e = e; }
@Override public void close() { throw e; }
}
RuntimeException e = new RuntimeException("My Exception");
try (TestA A = new TestA(e)) {
throw e;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过命令行编译并运行上面的代码时,我得到了预期的结果,这个错误表明我试图自我抑制和异常:
[coreys terminal]$ java TestDoubleThrow.java ; java TestDoubleThrow
Exception in thread "main" java.lang.IllegalArgumentException: Self-suppression not permitted
at …Run Code Online (Sandbox Code Playgroud) 我想阻止应用程序中的用户与特定域交互,因此我将属于这些域的电子邮件添加到我的 AWS SES 抑制列表中,但我的用户不断创建属于我想要阻止的同一域的不同个人的联系人。
有没有办法将整个域添加到黑名单中?就像通配符一样,例如:%@domain.com
我在Asp.Net页面上有一个控件,在该页面上是一个名为"PaReq"的控件违反了规则:
CA1704:IdentifiersShouldBeSpelledCorrectly
在我不确定如何抑制此错误之前我使用过抑制,因为它是在生成的文件中定义的.
我可以在自定义词典中执行此操作但这意味着所有开发人员都需要保持同步此词典的副本,如果可能的话我宁愿避免这样做.此外,术语"PaReq"仅用于此项目.
如何以及在何处应用抑制?
在http://ipython.org/ipython-doc/dev/interactive/tips.html的文档中,它说在命令末尾加上一个分号(;)来抑制其输出.在我的情况下,这似乎不起作用
>>> \>>> print('Hello');
--> 'Hello'
Run Code Online (Sandbox Code Playgroud)
我对输出抑制有错误的想法,还是这个错误?在pudb工作时这尤其令人讨厌,因为当我按下"next"或"step into"时,它在我的情况下可怕地闪烁.
PS输出既不是我的ubuntu ipython 0.10也不是osx lion ipython 0.11.尽管osx中的闪烁问题更糟糕,可能是因为item2.
我有以下代码:
[SuppressMessage( "Microsoft.Performance", "CA1800:DoNotCastUnnecessarily" )]
private static void SetTestConnectionString( Component table )
{
if( table is Object1 )
{
fn1( (Object1)table );
}
// ... a few more if statements for different Classes
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行FxCop此类/函数时,它仍会生成警告
警告:CA1800:Microsoft.Performance:'table',一个参数,在方法'ccc.SetTestConnectionString(Component)'中多次强制输入'xxx'.缓存'as'运算符或直接强制转换的结果,以消除冗余的castclass指令.
我知道我可以重构此代码以删除警告,但是它会降低代码的可读性.在这个例子中,我想在这一个函数上抑制这一条消息.
我究竟做错了什么?
我正在尝试构建一个具有按钮的程序,每次单击该按钮时,它都会移动按钮并添加到分数中.但是,我试图禁用Enter键,或按下时禁止命令.这是我到目前为止所拥有的
private void button1_Click(object sender, EventArgs e, KeyEventArgs k)
{
if (k.KeyCode == Keys.Enter)
{
k.SuppressKeyPress = true;
}
score = score + 10;
timesClicked++;
int rand1 = RandomNumber(1, 400);
int rand2 = RandomNumber(1, 400);
button1.Location = new Point(rand1, rand2);
toolStripScore.Text = ("Your score is " + score);
toolStripClicks.Text = ("You've clicked the button{0} times " + timesClicked);
winCheck();
}
Run Code Online (Sandbox Code Playgroud)
这是我为阻止输入密钥进入而添加的内容.
if (k.KeyCode == Keys.Enter) { k.SuppressKeyPress = true; }
Run Code Online (Sandbox Code Playgroud)
然而,它会生成错误..."'button1_Click'没有重载匹配委托'System.EventHandler'"当单击以显示位置时,它会打开Form1.Designer的代码并指向此行."this.button1.Click + = new System.EventHandler(this.button1_Click);"
任何有关解决此问题的帮助都将非常感激.
suppression ×12
java ×3
c# ×2
fxcop ×2
.net ×1
amazon-ses ×1
asp.net ×1
c++ ×1
checkstyle ×1
dns ×1
eclipse ×1
enums ×1
ipython ×1
junit ×1
keyeventargs ×1
memory ×1
memory-leaks ×1
mocking ×1
owasp ×1
security ×1
valgrind ×1