我有以下由Spring MVC API提供的具有单endpointgetAnnotation
的结构:
@SpringBootApplication
public class Application {
@Bean
public javax.validation.Validator localValidatorFactoryBean() {
return new LocalValidatorFactoryBean();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Service
public class MyAnalyzerImpl implements MyAnalyzer
{
@Autowired
public MyAnalyzerImpl() {}
@Override
public Annotations getAnnotation(MyRequest request)
{
// ...
}
}
接口
public interface MyAnalyzer {
Annotations getAnnotation(MyRequest request);
}
控制器
@RestController
@RequestMapping("/thisapi/{id}")
public class MyController {
@Autowired
@Qualifier("MyAnalysis")
MyAnalyzer myAnalyzer;
@RequestMapping(value = "/getAnnotation", method = RequestMethod.GET)
public Annotations getAnnotation(@PathVariable String docId,
@RequestParam(value = "document", defaultValue = "{'id':'1','title':'bla-bla'}") String text) {
MysRequest myRequest = new MyRequest(MyRequest.TYPE_ANNOTATION, text);
return myAnalyzer.getAnnotation(myRequest);
}
}
为了测试API,我首先创建了src/test/java/myAnalyzerImplTest.java
,并且能够成功地执行它:
@RunWith(SpringJUnit4ClassRunner.class)
public class MyAnalyzerImplTest {
private MyAnalyzerImpl myAnalyzer;
private String sampleText;
@Test
public void testEndpoint() throws Exception {
MyRequest request = new MyRequest( MyRequest.TYPE_ANNOTATION,
"1",
sampleText
);
Annotations results = myAnalyzer.getAnnotation(request);
Assert.assertTrue("This " + results.getPayload().getWords().size() + ") " +
"should be greater than 0", results.getPayload().getWords().size() > 0);
}
@Before
public void setUp() throws Exception {
myAnalyzer = new MyAnalyzerImpl();
File f = new File("src/test/resources/texsts/text.json");
if (f.exists()){
InputStream is = new FileInputStream("src/test/resources/texts/text.json");
samplePublication = IOUtils.toString(is);
}
Thread.sleep(1000);
}
}
#%RAML 0.8
title: MY API
version: v1
baseUri: http://localhost:8080
resourceTypes:
- annotate-type:
description: Bla-bla
get:
description: bla-bla
queryParameters:
text:
description: json of a document
type: string
required: true
default: "{'id':'1','title':'bla-bla'}"
responses:
200:
body:
application/json:
example: |
{
"words": "['aaa', 'bbb']"
}
/thisapi:
/{id}/getAnnotation:
type:
annotate-type:
uriParameters:
id:
description: document id
type: string
正如注释中所讨论的,最初的错误是由于使用了无效的限定符@qualifier(“myanalysis”)
。上下文中没有id“myanalysis”的bean。因为只有一个合适的实现,所以使用其他@qualifier
是没有用的。
第二个错误是由于在构造函数中无效地使用了@autowired
。这里描述了一个类似的问题
我在这里给我的课做了注解 此外,还对我的测试方法进行了这样的注解 最后,配置我的build.gradle defaultConfig和依赖项,如下所示
我已经看了所有其他对此的反应,但它们似乎不适用于我。 https://kotlinlang.org/api/latest/kotlin.test/kotlin.test/ 我正在尝试从暂存文件或.kt文件访问它,并且它不在下拉列表中以选择它。 项目正在使用JDK 15。
问题内容: 我正在从事Web驱动程序项目。我能够构建测试并执行。 重建解决方案时,我立即遇到以下错误。 我已将默认处理器体系结构更改为,但问题未解决。 请帮助我解决此问题。 谢谢。 问题答案: 似乎是这样的问题:Visual StudioFsUnit测试设置-异常NUnit.Engine.NUnitEngineException因此,安装适配器版本3.0.10应该可以解决您的问题。至少对我有用。
在试图用PHPUnit设置Eclipse作为单元测试库时,我陷入了试图运行一个简单测试用例的困境。作为参考,我按照本教程使用PHPUnit/Xdebug/Makegood来设置Eclipse,唯一偏离给出的指导方针是为PHPUnit/Makegood设置以下配置文件: 现在,问题的根源在于,我似乎无法使用Makegood从Eclipse运行PHPUnit测试。我编写的唯一测试(位于名为test.p
我试图运行一个简单的Spring Boot测试,我得到的错误表明它不能在运行时MockMvc。文档表明我使用了正确的注释,并且我使用start.spring.io创建了我的pom.xml。不知道为什么会有问题。 错误: 测试代码 pom.xml