假设我有这个组件:
import React, { Component } from 'react';
import { Text, TouchableWithoutFeedback, View } from 'react-native';
class MyComp extends Component {
onRowPress() {
this.myCoolFunction();
}
myCoolFunction() {
console.log('hi');
}
render() {
return (
<TouchableWithoutFeedback onPress={this.onRowPress.bind(this)}>
<View>
<Text>Hello World</Text>
</View>
</TouchableWithoutFeedback>
);
}
}
export default MyComp;
Run Code Online (Sandbox Code Playgroud)
如何模拟1点击'TouchableWithoutFeedback'并确保'myCoolFunction'被正确调用1次?
如果它不是必须的,那么我宁愿不添加除'react-dom'和'react-addons-test-utils'之外的更多依赖项.
我看到很多指南声称这个和那个,但我担心它们已经过时了,我想确定我不会经历一些不必要的变通办法并使我的代码膨胀.
我在他们的最新版本中有jest/react/react原生.
编辑:在Jest的官方文档中,它说DOM测试可以使用Enzyme或TestUtils完成.如何使用TestUtils完成此操作?
我有很多带有长方法实现的头文件.
有自动方式吗?
一个接一个可能需要花费很多时间......
谢谢.
我使用 OS X 10.7 (Lion)、XCode 4.6.3 和 libstdc++ 作为 C++ 标准库。
我的主项目中有这段代码:
共享.cpp:
extern "C" int sharedFun()
{
return 5;
}
Run Code Online (Sandbox Code Playgroud)
在我的副项目中,需要动态加载主项目:
加载器.cpp:
#include <dlfcn.h>
int main(int argc, const char * argv[])
{
void* mainApp = dlopen("mainApp.dylib", RTLD_LAZY);
char* error;
dlsym(mainApp, "sharedFun");
if ((error = dlerror()) != nullptr)
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
纳米输出:
nm -gU mainApp.dylib | grep sharedFun
002a3a10 - 01 0000 FUN _sharedFun
002a3a10 T _sharedFun
Run Code Online (Sandbox Code Playgroud)
dlopen 加载库很好,但 dlsym 返回“符号未找到”。有任何想法吗?
谢谢。
假设我有以下字符串:
string str = "<tag>text</tag>";
Run Code Online (Sandbox Code Playgroud)
我想将'tag'更改为'newTag',结果将是:
"<newTag>text</newTag>"
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我试图搜索<[/]*tag>,但后来我不知道如何在我的结果中保留可选的[/] ...
使用 spring-web-4.2.6,我有以下控制器和异常处理程序:
@ControllerAdvice
public class ExceptionsHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorDTO> HandleDefaultException(Exception ex) {
...
}
@ExceptionHandler(InternalError.class)
public ResponseEntity<ErrorDTO> HandleInternalError(InternalError ex) {
...
}
}
@RestController
@RequestMapping("/myController")
public class MyController {
@RequestMapping(value = "/myAction", method = RequestMethod.POST)
public boolean myAction() {
throw new InternalError("");
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,会调用 ExceptionsHandler 的 HandleDefaultException(对于 Exception.class)方法,而不是 HandleInternalError 调用,但异常类型为 NestedServletException。
删除默认调用时,将使用正确的 InternalError 异常调用 IntenalError 调用。
我不想删除默认调用,因为有一个默认处理程序可以为我的用户提供更好的体验,这对我来说很重要。
我在这里缺少什么?
编辑:
显然我正在使用 spring-web-4.3.3,而不需要它。我不明白为什么,这是我的 Gradle 依赖关系树: http: //pastebin.com/h6KXSyp2
c++ ×2
c# ×1
dlsym ×1
exception ×1
java ×1
jestjs ×1
macos ×1
react-native ×1
reactjs ×1
refactoring ×1
regex ×1
spring ×1
spring-mvc ×1
testing ×1
xcode ×1