我是JUnit的Java测试新手.我必须使用Java,我想使用单元测试.
我的问题是:我有一个带有一些抽象方法的抽象类.但是有些方法并不是抽象的.如何使用JUnit测试此类?示例代码(非常简单):
abstract class Car {
public Car(int speed, int fuel) {
this.speed = speed;
this.fuel = fuel;
}
private int speed;
private int fuel;
abstract void drive();
public int getSpeed() {
return this.speed;
}
public int getFuel() {
return this.fuel;
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试getSpeed()和getFuel()功能.
这个问题的类似问题在这里,但它没有使用JUnit.
在JUnit FAQ部分中,我找到了这个链接,但我不明白作者想用这个例子说些什么.这行代码是什么意思?
public abstract Source getSource() ;
Run Code Online (Sandbox Code Playgroud) 我必须用Java制作模拟器,它将模拟在高速公路上骑车.高速公路上应该有3条车道,每条车道都有恒定速度的车.在这条高速公路上,有一个代理商,必须穿过而不会撞到任何其他车辆.详细描述可以在本文的2.5节和图5中找到.
这张图片来自提到的纸张,显示了高速公路的外观:

我的目标是只编写模拟器(和GUI),而不是代理逻辑.现在,我想设计一个这个模拟器的架构,这是我需要帮助的地方.
我的想法,代理的API看起来如何:
public abstract class BaseAgent {
public abstract void run()
public abstract void onCrash();
}
Run Code Online (Sandbox Code Playgroud)
高速公路上的特工(汽车)应该是这个班级的后代.在每一步中,模拟器调用函数run()在哪里是代理逻辑.在此函数中,代理可以调用以下函数:
goLeft();
goRight();
getNearestCarInLane(int lane_no);
getMySpeed();
Run Code Online (Sandbox Code Playgroud)
因此,在每一步中,代理人都可以决定他是否留在当前车道,或者他是左转还是右转.这就是代理人可以做的事情.
所以这是代理API,但我不知道,如何设计其余的模拟器.我对模拟器架构的第一次尝试是:
class Agent — descendant of BaseAgent, can ride on highway.
class Highway — stores position of all cars on highway.
class Simulator — creates instance of agent and highway; in every step, call agent’s `run()` and monitors any car crash.
Run Code Online (Sandbox Code Playgroud)
这不是一个好的架构.哪个类应该是方法goLeft(),goRight()和getNearestCarInLane()?因为这些方法必须在BaseAgent课堂内,但必须知道每辆车在高速公路上的位置.所以最后,我有这样的事情:
Simulator …Run Code Online (Sandbox Code Playgroud) 我正在使用 Github 页面 (Jekyll) 编写文档,并且在其中一个页面中我想链接到另一个页面。我尝试使用{% page_url post-name %}但没有运气。当我运行时,出现bundle exec jekyll serve此异常:
Liquid Exception: no implicit conversion of nil into String in docs/page1.md
Run Code Online (Sandbox Code Playgroud)
我的帖子在子目录中docs,我的文档结构如下所示:
CNAME
_config.yml
_includes/
_layouts/
_site/
css/
docs/
page1.md
page2.md
page3.md
imgs/
js/
index.md
Run Code Online (Sandbox Code Playgroud)
配置文件包含:
safe: true
lsi: false
pygments: true
markdown: kramdown
Run Code Online (Sandbox Code Playgroud)
docs/子目录中的所有页面都包含 YAML 块:
---
layout: docs
title: Page Two
permalink: /docs/page2/
---
Run Code Online (Sandbox Code Playgroud)
现在,我尝试获取此页面的 url page2:
{% page_url page2 %}
{% page_url docs/page2 %}
{% page_url /docs/page2/ %} …Run Code Online (Sandbox Code Playgroud) 我想在我的项目中使用gMap jQuery插件。我成功显示了Google地图,可以显示一些标记,但是找不到任何方法绘制多段线。
我有这个JS代码:
$(window).ready(function () {
var data = {
'latitude': 0.000000,
'longitude': -180.000000,
'zoom': 3,
'maptype': "terrain",
};
var gps_coordinates = {
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2,
path: [
{'latitude':37.772323,'longitude':-122.214897},
{'latitude':21.291982,'longitude':-157.821856},
{'latitude':-18.142599,'longitude':178.431000},
{'latitude':-27.467580,'longitude':153.027892}
]
};
$('#map').gMap(data);
$('#map').gMap("Polyline", gps_coordinates);
});
Run Code Online (Sandbox Code Playgroud)
在gMap文档中的注释如下:
您还可以使用一些内部gmap函数。
所以我想,我可以使用google.maps.Polyline函数绘制一条折线。但是如何?
只是一个学术问题.我很好奇这个代码的哪个版本在Python中更好(更快)?
var = random.randint(1, 10)
# First version
if var in [2, 5, 9]:
print "First: 2, 5 or 9"
# Second version
if var == 2 or number == 5 or number == 9:
print "Second: 2, 5 or 9"
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的例子,但是如果变量var不是数字,而是字符串呢?
var = 'aaa'
# First version
if var in ['aaa', 'zzz', 'eee']:
print "String"
Run Code Online (Sandbox Code Playgroud)
那些更复杂的对象(不仅是数字或字符串,还有一些非常耗时的比较)?
Python编译器内部会发生什么?我想if var in list是执行如下:
for l in list:
if l == var:
print "String"
Run Code Online (Sandbox Code Playgroud)
所以在我看来,第一个例子中的两个版本都是相同的(速度).我对吗?
java ×2
agent ×1
api ×1
architecture ×1
c ×1
github-pages ×1
javascript ×1
jekyll ×1
jquery ×1
jquery-gmap ×1
junit ×1
liquid ×1
optimization ×1
python ×1
simulation ×1