如何获取IntelliJ 10.5(在Mac上)生成一个显示项目中所有类的类图?我确定我忽略了一些明显的东西,但我只能得到"显示图表"功能,一次显示一个类.(我也想出了如何添加其他类,但同样只能添加一个类.)
动态加载类时,何时适合使用
Class.forName("SomeClass");
Run Code Online (Sandbox Code Playgroud)
我应该什么时候使用
ClassLoader.getSystemClassLoader().loadClass("SomeClass");
Run Code Online (Sandbox Code Playgroud)
或者,他们是两种做同样事情的方式吗?
有没有办法在IntelliJ中为单个文件设置选项卡大小,或者至多为单个项目设置选项卡大小?
我的所有代码都使用3的制表符; 但是,我正在与一个更喜欢标签大小为4的作者合作.有没有办法将标签大小设置为4,只有那些属于这个项目的文件?
我的装置设置中出现外键错误,并且我对如何调试它感到困惑。
具体来说,我收到以下错误,但我知道标签存在:
RuntimeError: Foreign key violations found in your fixture data. Ensure you aren't referring to labels that don't exist on associations.
Run Code Online (Sandbox Code Playgroud)
设置如下:我有用户、类别和条目。每个类别有一个用户,每个条目有 12 个类别。
有问题的参赛装置是
bob_2022_01_10:
date: 2022-01-10
segment: 3
user: bob
category_0: test
# categories can be null, so I don't set category_1 through category_11 for this example.
Run Code Online (Sandbox Code Playgroud)
而且,如果我注释掉该category_0行,一切都会正常。
类别固定装置是
test:
id: 100
name: Test category
user: bob
parent_id: nil
Run Code Online (Sandbox Code Playgroud)
如果我注释掉 Entry 夹具中的违规行,我就可以test在其他测试中使用该夹具。(因此,我知道问题不在于我引用了不存在的夹具。)
我可以在测试中“手动”设置条目和类别之间的关系:
entry = entries :bob_2022_01_10
entry.category_0 = categories :test
Run Code Online (Sandbox Code Playgroud)
我还可以使用 Category_id …
当我无法使用Mockito.when()时,如何使用PowerMockito中的doReturn模式来模拟静态方法?
我想测试以下静态方法:
public static PrintWriter openWriter(File file, Charset charset, boolean autoflush) throws FileNotFoundException {
return openWriterHelper(new FileOutputStream(file), charset, autoflush);
}
Run Code Online (Sandbox Code Playgroud)
这是我的testMethod:
@Test
public void testOpenWriter_file_charset_autoflush() throws Throwable {
Charset charset = mock(Charset.class);
PrintWriter expected = mock(PrintWriter.class);
File file = mock(File.class);
FileOutputStream fos = mock(FileOutputStream.class);
spy(IOHelper.class);
whenNew(FileOutputStream.class).withArguments(file).thenReturn(fos);
when(IOHelper.openWriterHelper(fos, charset, true)).thenReturn(expected);
PrintWriter observed = IOHelper.openWriter(file, charset, true);
assertEquals(expected, observed);
verifyStatic();
IOHelper.openWriterHelper(fos, charset, true);
Run Code Online (Sandbox Code Playgroud)
}
问题是我无法在调用when时调用openWriterHelper,因为该方法在传递模拟OutputStream时会引发异常.
如果重要,这是openWriterHelper的代码:
public static PrintWriter openWriterHelper(OutputStream stream, Charset charset,
boolean autoflush) {
return new PrintWriter(new java.io.BufferedWriter(
new java.io.OutputStreamWriter(stream, …Run Code Online (Sandbox Code Playgroud) 当使用带有IntelliJ的Ruby插件时,我应该期望/容忍哪些"未定义的引用"警告,哪些表明我没有正确配置某些内容?
例如,我收到'require','File'和'FileUtils'的"找不到"警告.我怀疑这表明配置问题.
我也收到RSpec方法的警告,比如'describe','before','after'和'it'.我是否也可以配置IntelliJ来"找到"这些?
gnu组件标签前的美元符号是什么意思?
例如,mov msg, %si和之间有什么区别mov $msg, %si
(有关更多上下文,我正在研究x86裸机示例:https : //github.com/cirosantilli/x86-bare-metal-examples/blob/master/bios_hello_world.S)
#include "common.h"
BEGIN
mov $msg, %si
mov $0x0e, %ah
loop:
lodsb
or %al, %al
jz halt
int $0x10
jmp loop
halt:
hlt
msg:
.asciz "hello world"
Run Code Online (Sandbox Code Playgroud)
(美元($)和百分号(%)在汇编英特尔x86中代表什么?讨论了寄存器前的%和常量前的$的一般用法;但是,我不认为它几乎可以说明带有标签的$的使用如以下答案所示)
如何在 Rails 6 环境中配置 Jasmine(其中 Webpack 替换了 Javascript 的资产管道),以便我可以测试我为我的应用程序编写的 Javascript 模块?
我安装了 jasmine gem,运行rails generate jasmine:install并编辑jasmine.yml以指向我的 Javascript 源代码和规范的位置。
问题是我不能使用导入/导出语句。(例如,试图加载我的第一模块向测试结果在此错误在Chrome: Uncaught SyntaxError: Unexpected token 'export')
据我所知,我需要设置 Jasmine 才能使用 babel;但是,我没有找到关于如何在新的 Rails 6 布局中执行此操作的说明。
我想写一个JUnit测试来验证下面的代码使用BufferedInputStream:
public static final FilterFactory BZIP2_FACTORY = new FilterFactory() {
public InputStream makeFilter(InputStream in) {
// a lot of other code removed for clarity
BufferedInputStream buffer = new BufferedInputStream(in);
return new CBZip2InputStream(buffer);
}
};
Run Code Online (Sandbox Code Playgroud)
(FilterFactory是一个接口.)
到目前为止我的测试看起来像这样:
@Test
public void testBZIP2_FactoryUsesBufferedInputStream() throws Throwable {
InputStream in = mock(InputStream.class);
BufferedInputStream buffer = mock(BufferedInputStream.class);
CBZip2InputStream expected = mock(CBZip2InputStream.class);
PowerMockito.spy(InputHelper.BZIP2_FACTORY); // This line fails
whenNew(BufferedInputStream.class).withArguments(in).thenReturn(buffer);
whenNew(CBZip2InputStream.class).withArguments(buffer).thenReturn(expected);
InputStream observed = InputHelper.BZIP2_FACTORY.makeFilter(in);
assertEquals(expected, observed);
}
Run Code Online (Sandbox Code Playgroud)
对PowerMockito.spy的调用会引发此消息的异常:
org.mockito.exceptions.base.MockitoException:
Mockito cannot mock this class: class edu.gvsu.cis.kurmasz.io.InputHelper$1
Mockito can …Run Code Online (Sandbox Code Playgroud) 为什么我可以使用反射来实例化内部受保护的类,而不是使用包级保护的内部类?我不认为任何一种都可以在包装外进行访问.
请考虑以下示例:
package dummy;
public class ClassContainer {
protected static class InnerProtected {
public InnerProtected() {}
}
static class InnerDefault {
public InnerDefault() {}
}
private class InnerPrivate {
public InnerPrivate() {}
}
}
package driver;
public class DriverClass {
public static void main(String[] args) throws Exception {
Class.forName("dummy.ClassContainer$InnerProtected").newInstance();
Class.forName("dummy.ClassContainer$InnerDefault").newInstance();
Class.forName("dummy.ClassContainer$InnerPrivate").newInstance();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个类位于不同的包中.
main中的第一行(实例化InnerProtected)起作用.
第二行(实例化InnerDefault)抛出此异常:
Exception in thread "main" java.lang.IllegalAccessException: Class driver.DriverClass can not access a member of class dummy.ClassContainer$InnerDefault with modifiers "public"
Run Code Online (Sandbox Code Playgroud)
由于驱动程序是与类定义不同的包,因此实例化类的尝试不应该失败吗?
(对于它的价值:试图实例化InnerPrivate失败,如我所料:
Exception in thread "main" …Run Code Online (Sandbox Code Playgroud)