我有一个需要用Java复制的对象.我需要创建一个副本并在其上运行一些测试而不更改原始对象本身.
我假设我需要使用clone()方法,但这是受保护的.在网上做了一些研究之后,我可以看到这可以用我班上的公共方法覆盖.但我找不到如何做到这一点的解释.怎么可以这样做?
此外,这是实现我需要的最佳方式吗?
我有下面的输入字段,我需要输入输入并将其传递给下面显示的按钮的onClick事件.
<input type="text" style={textFieldStyle} name="topicBox" placeholder="Enter topic here..."/>
<input type="text" style = {textFieldStyle} name="payloadBox" placeholder="Enter payload here..."/>
<button value="Send" style={ buttonStyle } onClick={this.publish.bind(this,<value of input field 1>,<value of input field2>)}>Publish</button><span/>
Run Code Online (Sandbox Code Playgroud)
我有一个名为publish的方法,它接受两个字符串参数.我需要传递输入字段中输入的值来代替这些字符串.如何在不将值存储在状态的情况下实现此目的?我不想将输入字段值存储在状态变量中.任何帮助将非常感激.
我正在尝试模拟 KeyStore 类。模拟之后,我不希望加载方法被调用时发生任何事情。因此我编写了以下几行来实现这一目标。
@PrepareForTest(KeyStoreFactory.class)
@Test
public void should_verify_signature_when_verifySignature_called_with_fileName_and_certificate_details_in_verifySignature_method() throws Exception {
PowerMockito.mockStatic(KeyStoreFactory.class);
KeyStore keyStoreMock = PowerMockito.mock(KeyStore.class);
PowerMockito.when(KeyStoreFactory.getInstance(anyString(), anyString())).thenReturn(keyStoreMock);
Mockito.doNothing().when(keyStoreMock).load(Mockito.any(InputStream.class), Mockito.any(char[].class));
Certificate certificateMock = Mockito.mock(Certificate.class);
when(keyStoreMock.getCertificate(anyString())).thenReturn(certificateMock);
boolean result = signatureUtil.verifySignature("src//test//java//Updates.zip.signed.pkcs7"
, "src//test//java//Updates-retrieved.zip", "Windows-MY,SunMSCAPI,someName");
Assert.assertTrue(result);
}
Run Code Online (Sandbox Code Playgroud)
但 load 方法抛出空指针异常。然后,当我调试时,我发现真正的方法正在被调用,尽管我已经指定了mockito不要这样做。我在这里做错了什么?请指教。
以下是我编写测试的方法。
@Override
public boolean verifySignature(String filePath, String extractContentsPath, String csvParams)
throws ServiceSDKException {
boolean result = false;
String typeOfCertificateStore = "";
String certificateStoreProvider = "";
String certificateName = "";
SignerInformationVerifier verifier = null;
if (filePath != null && extractContentsPath != null && csvParams …Run Code Online (Sandbox Code Playgroud) 我尝试使用以下命令安装chai.
npm install --save-dev chai
Run Code Online (Sandbox Code Playgroud)
然后我使用以下导入运行我的单元测试类.
import {assert} from 'chai';
import {expect} from 'chai';
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误.
test\main\MessageBroker.spec.ts(3,22): error TS2307: Cannot find module 'chai'.
[05:38:45] [Typescript] TypeScript error: test\main\MessageBroker.spec.ts(3,22): error TS2307: Cannot find module 'chai'.
test\main\MessageBroker.spec.ts(4,22): error TS2307: Cannot find module 'chai'.
[05:38:45] [Typescript] TypeScript error: test\main\MessageBroker.spec.ts(4,22): error TS2307: Cannot find module 'chai'
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我也可以在node_modules文件夹中看到chai文件夹.
当我说var chai = require('chai'); 有用!为什么不进口工作?
我正在尝试运行我创建的反应原生应用程序.我最初在手机中运行时会看到以下屏幕.
我尝试运行"react-native start",当我运行它时,我得到以下输出.
当它停在"初始化包管理器"时,我在另一个终端运行了"react-native run-android".我仍然得到相同的BatchBridge错误.当我点击错误屏幕上的刷新按钮时,我得到以下屏幕.
我在这做错了什么?在我的代码中,我只有一个console.log.这是一个刚开始的新项目.任何建议将不胜感激.我尝试在应用程序启动时引用错误的答案"无法获取BatchedBridge,确保您的软件包已正确打包",但它是一组Linux命令.
我正在尝试动态地将一些JSON解析为Map.以下适用于简单的JSON
String easyString = "{\"name\":\"mkyong\", \"age\":\"29\"}";
Map<String,String> map = new HashMap<String,String>();
ObjectMapper mapper = new ObjectMapper();
map = mapper.readValue(easyString,
new TypeReference<HashMap<String,String>>(){});
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将一些更复杂的JSON与嵌套信息一起使用时失败了.我正在尝试解析json.org中的示例数据
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": [
"GML",
"XML"
]
},
"GlossSee": "markup"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
线程"main"中的异常com.fasterxml.jackson.databind.JsonMappingException:无法从START_OBJECT标记中反序列化java.lang.String的实例 …
我有以下方法,我需要编写单元测试.但我无法窥探KeyStore类.它引发了以下异常.
org.mockito.exceptions.base.MockitoException: Unable to create mock instance of type 'KeyStore'
Run Code Online (Sandbox Code Playgroud)
我可以嘲笑它.但是当我去为mock方法分配行为时,它会抛出异常.我打电话的方法和我得到的例外情况如下.
when(keyStoreMock.getCertificate(anyString())).thenReturn(certificateMock);
java.security.KeyStoreException: Uninitialized keystore
doNothing().when(keyStoreMock).load(any(InputStream.class),Mockito.any(char[].class));
java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
以下是我试图测试的方法.
public boolean verifySignature(String filePath, String extractContentsPath, String csvParams)
throws ServiceSDKException {
boolean result = false;
String typeOfCertificateStore = "";
String certificateStoreProvider = "";
String certificateName = "";
SignerInformationVerifier verifier = null;
if (filePath != null && extractContentsPath != null && csvParams != null && !filePath.isEmpty()
&& !extractContentsPath.isEmpty() && !csvParams.isEmpty()) {
try {
String[] receivedParams = csvParams.split(",");
typeOfCertificateStore = receivedParams[0];
certificateStoreProvider = receivedParams[1]; …Run Code Online (Sandbox Code Playgroud) 我正在使用下面的命令通过命令行从 Nexus 下载一个 Maven jar。
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=bits:update-service:1.0.3 -Ddest=Setups/Services/update-service.jar
Run Code Online (Sandbox Code Playgroud)
但我得到的是一个没有依赖关系的 jar。Maven 中已经有一个带有依赖项的 jar 名称update-service-1.0.4-jar-with-dependencies.jar
我尝试了以下方法:
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=bits:update-service:1.0.3[:packaging[:jar]] -Ddest=Setups/Services/update-service.jar
Run Code Online (Sandbox Code Playgroud)
但它返回以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.4:get (default-cli) on project standalone-pom: Couldn't download artifact: Missing:
[ERROR] ----------
[ERROR] 1) bits:update-service:packaging[:jar]]:1.0.3[
[ERROR]
[ERROR] Try downloading the file manually from the project website.
[ERROR]
[ERROR] Then, install it using the command:
[ERROR] mvn install:install-file -DgroupId=bits -DartifactId=update-service -Dversion=1.0.3[ -Dclassifier=jar]] -Dpackaging=packaging[ -Dfile=/path/to/file
[ERROR]
[ERROR] Alternatively, if you host your own …Run Code Online (Sandbox Code Playgroud) 我有以下方法显示声纳问题说该方法不在任何地方使用.
@Provides
@ObjectMapperAnnotation
public ObjectMapper provideObjectMapper() { //NOSONAR
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JsonOrgModule());
return mapper;
}
Run Code Online (Sandbox Code Playgroud)
但这是一个由guice库调用的方法,我不必明确地调用它.因此,为了压缩这个问题,我使用了如上所示的NOSONAR标记.但它仍然显示出一个主要问题,如下所示.
Is //NOSONAR used to exclude false-positive or to hide real quality flaw ?
Run Code Online (Sandbox Code Playgroud)
如何避免使用NOSONAR标记显示此问题?任何帮助将非常感激.
我有以下C结构,需要映射到Java.因为我需要从C代码生成的DLL中调用一个方法.以下是我的结构.
typedef struct _ipj_iri_device
{
IPJ_READER_CONTEXT reader_context;
IPJ_READER_IDENTIFIER reader_identifier;
uint32_t receive_timeout_ms;
/* Internal Only */
uint8_t sync_state;
bool wait_for_response;
uint32_t frame_length;
uint32_t receive_index;
uint8_t receive_buffer[IPJ_RECEIVE_BUFFER_SIZE];
#if !defined(IRI_RX_ONLY)
uint8_t transmit_buffer[IPJ_TRANSMIT_BUFFER_SIZE];
#endif
} ipj_iri_device;
Run Code Online (Sandbox Code Playgroud)
IPJ_READER_CONTEXT和IPJ_READER_IDENTIFIER如下所示.
typedef void* IPJ_READER_CONTEXT;
typedef void* IPJ_READER_IDENTIFIER;
Run Code Online (Sandbox Code Playgroud)
如何解析这两个元素以映射到Java?请指教.
java ×7
javascript ×2
mockito ×2
powermockito ×2
reactjs ×2
typescript ×2
unit-testing ×2
adb ×1
android ×1
button ×1
c ×1
chai ×1
clone ×1
copy ×1
debugging ×1
dictionary ×1
guice ×1
input ×1
jniwrapper ×1
json ×1
keystore ×1
maven ×1
nexus ×1
node-modules ×1
npm ×1
object ×1
powermock ×1
react-native ×1
sonarqube ×1
sonarqube5.1 ×1