我有一个班级
public class Engine {
Double engineSize;
public Engine(){
this.engineSize = 1.0;
}
public Double getEngineSize() {
return engineSize;
}
}
我有另一个班级:
public class ModelT {
public Engine getEngine() {
return null;
}}
现在我想通过这个测试:
@Test
public void shouldHaveTheCorrectEngineSize(){
assertThat(modelT.getEngine().getEngineSize(), is(1.0));
}
我有困难如何在方法中返回引擎类型,我尝试了几种方法,但知识有限,因为我是java的初学者。你能告诉我怎么能这样做?什么是我可以进一步阅读的概念的名称..
答案 0 :(得分:1)
您需要在ModeT类中存储Engine实例:
public class ModelT {
private Engine eng;
ModelT( Engine eng){
engine = eng;
}
public Engine getEngine() {
return eng;
}}
然后在你主 - 创建一个Engine对象并传入modelt:
Engine eng = new Engine();
ModelT car = new Modelt(eng);
答案 1 :(得分:1)
也许我不理解你的问题,但你的测试永远不会返回,因为在你的ModelT方法getEngine中你返回一个null ..
尝试使用以下代码:
public class ModelT {
public Engine getEngine() {
return new Engine();
}
}
答案 2 :(得分:0)
看到你想要达到的目标有点难。
您可以查看instanceof以获取Engine类。
您可能希望了解继承以及可以将类关联起来的各种方法。
答案 3 :(得分:0)
如果您将Engine
课程与ModelT
相关联,那么 getter 会更有意义
并通过关联我的意思是使用Composition relationship
public class ModelT {
private Engine myEngine;
//some setter, DI or Constructors here
public Engine getEngine() {
return myEngine;
}
}
你有一个地方:我怎样才能返回public double getEngineSize()的值 class ModelT ??
ModelT foo = new ModelT();
Engine e = foo.getEngine();
double s = e.getEngineSize();
答案 4 :(得分:0)
此测试永远不会通过,因为您在null
方法中返回getEngine()
。
如果您在getEngineSize()
上致电null
,您将收到NullPointerException
你需要做这样的事情:
public class ModelT {
public Engine getEngine() {
return new Engine();
}
}
然后您就可以使用Engine
。
由于您对如何学习Java基础知识有所了解,我建议您直接使用Oracle的Java-Basics。