目前,我试图了解@Injectable和@Tested注释是如何工作的.我已经做了一些测试并理解了这个概念,但我没有得到如何在现实世界的应用程序中使用这些注释.
假设我们正在开发一个依赖于Web服务的语言翻译器类.Web服务方法封装在一个单独的类中:
// class to test
public class Translator() {
private TranslatorWebService webService;
public String translateEnglishToGerman(String word){
webService = new TranslatorWebService();
return webService.performTranslation(word);
}
}
// dependency
public class TranslatorWebService {
public String performTranslation(String word){
// perform API calls
return "German Translation";
}
}
Run Code Online (Sandbox Code Playgroud)
为了Translator独立测试该类,我们想模拟TranslatorWebService该类.根据我的理解,测试类应该如下:
public class TranslatorTest {
@Tested private Translator tested;
@Injectable private TranslatorWebService transWebServiceDependency;
@Test public void translateEnglishToGerman() {
new Expectations() {{
transWebServiceDependency.performTranslation("House");
result = "Haus";
}};
System.out.println(tested.translateEnglishToGerman("House"));
} …Run Code Online (Sandbox Code Playgroud) 我想在Dockerfile中运行带有$ _等特殊参数的bash命令.我尝试了以下示例,但它似乎无法正常工作.如果我直接在bash中执行相同的命令,它就像魅力一样.有谁知道我做错了什么?
$ RUN mkdir /foo && cd $_ && pwd
Run Code Online (Sandbox Code Playgroud)