ieda 下载中如何使用juint方法

Bad Request
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.void ddelay(uint k) { uint i,j; for(i=0;i&k;i++) { for(j=0;j&60;j++) {;} } }高手帮忙解释下这个函数_百度知道
void ddelay(uint k) { uint i,j; for(i=0;i&k;i++) { for(j=0;j&60;j++) {;} } }高手帮忙解释下这个函数
我有更好的答案
一个名叫 ddlelay的函数 参量一个 k双循环 i从0到k-1 j从0到59 然后什么都不做 就结束函数了
采纳率:41%
void ddelay(uint k) {
for(i=0;i&k;i++)
for(j = 0; j & 60; j++)
} }你看这个for循环什么都没做,叫做空循环,这时CPU在空跑而没有处理其他事。这种使用方法就叫做软件延时,一般都是几微秒到几十毫秒,这个函数延时的时间是60*k 个指令周期。
我看的程序是单片机中测速度的程序,这个软件循环在程序中能起到什么作用
延时是为了保证时序,比如你向AD芯片发送一个转换的命令,需要等待一段时间数据才能转换好,如果不延时,那读出来的很可能是错误的
这是个延时函数
{;} 这是个空函数 没得实际意义
只是占用时间起延时作用!
为您推荐:
其他类似问题
uint的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。现在的Unix时间戳(Unix timestamp)是:
JavaScript
Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒
Microsoft .NET / C#
epoch = (DateTime.Now.ToUniversalTime().Ticks - 000000) /
SELECT unix_timestamp(now())
PostgreSQL
SELECT extract(epoch FROM now())
先 import time 然后 time.time()
获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i
SQL Server
SELECT DATEDIFF(s, ' 00:00:00', GETUTCDATE())
Unix / Linux
VBScript / ASP
DateDiff("s", "01/01/:00", Now())
其他操作系统
(如果Perl被安装在系统中)
命令行状态:perl -e "print time"
String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp * 1000))
JavaScript
先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后 commonTime = unixTimestamp.toLocaleString()
date -d @Unix timestamp
from_unixtime(Unix timestamp)
先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]
date('r', Unix timestamp)
PostgreSQL
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + Unix timestamp) * INTERVAL '1 second';
先 import time 然后 time.gmtime(Unix timestamp)
Time.at(Unix timestamp)
SQL Server
DATEADD(s, Unix timestamp, ' 00:00:00')
VBScript / ASP
DateAdd("s", Unix timestamp, "01/01/:00")
其他操作系统
(如果Perl被安装在系统中)
命令行状态:perl -e "print scalar(localtime(Unix timestamp))"
long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/:00");
JavaScript
var commonTime = new Date(Date.UTC(year, month - 1, day, hour, minute, second))
SELECT unix_timestamp(time)
时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD
先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);
mktime(hour, minute, second, month, day, year)
PostgreSQL
SELECT extract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));
先 import time 然后 int(time.mktime(time.strptime('YYYY-MM-DD HH:MM:SS', '%Y-%m-%d %H:%M:%S')))
Time.local(year, month, day, hour, minute, second)
SQL Server
SELECT DATEDIFF(s, ' 00:00:00', time)
Unix / Linux
date +%s -d"Jan 1, :01"
VBScript / ASP
DateDiff("s", "01/01/:00", time)
什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用
配色/在线汉字JUint学习笔记12---对servlet和filter进行单元测试1
第三部分& testing components
&&&&&&&&&&&&&&&&&&&&&& 从JUnit学习笔记1到11都是讲基本的测试尝试,懂得前面的知识,就可以开始Junit in action的最后一程了---测试组件。
&&&&&& 第三部分让你把在第一第二部分学到的测试知识实践于J2EE组件。我们将重点学习为各种J2EE组件编写单元测试,并能学习如何用Ant、Maven和Eclipse这些工具进行测试。
&&&&&第九章 对servlet和filter进行单元测试&& Unit-testing servlets and filters
&&&&&& 本章内容
示范测试驱动开发(TDD)方法用Cactus和mock objects编写servlet和filter的单元测试程序用Maven运行Cactus测试程序选择何时用Cactus,何时用mock objects
&&&&&介绍管理应用程序
&&&这个示例管理就是目的是要让管理者对关系数据库进行查询。下图就是典型的web应用框架:
&&&&&&&&&& 应用程序首先接受用户包含执行SQL查询的HTTP请求。请求被一个安全filter捕获,该安全filter是用来检查SQL查询是否是一个SELECT查询。如果不是,用户将被定向到一个错误的页面,如果查询是一个SELECT语句,那么就将调用AdminServlet。该servlet执行请求的数据库查询,并将结果传送到JSP显示页面。
用Cactus编写servlet测试
&&&&&& 在这部分的内容中,我们重点是进行AdminServlet部分执行单元测试。在写代码之前就开始写测试程序叫驱动测试开发或测试先行策略。
&&&&&&&先来分析一下AdminServlet的需求,该servlet从Http请求中提取包括将要执行命令的需用参数。然后它将使用提取的命令来获取数据。最后将控制权交给JSP页面来显示穿过来的数据。我们把对应于这些行为的方法分别称为getCommand、executeCommand和callView。
&&&&&&&设计第一个测试
&&&&&&&& 下面的代码给出了对getCommand方法的测试。
package junitbook.
import java.util.ArrayL
import java.util.C
import java.util.L
import javax.servlet.ServletE
import org.apache.cactus.ServletTestC
import org.apache.cactus.WebR
import org.apache.commons.beanutils.BasicDynaC
import org.apache.commons.beanutils.DynaB
import org.apache.commons.beanutils.DynaP
public class TestAdminServlet extends ServletTestCase
public void beginGetCommandOk(WebRequest request)测试有效的情况
定义了command
request.addParameter(&command&, &SELECT...&);作为Http的参数
public void testGetCommandOk() throws E
AdminServlet servlet = new AdminServlet();
String command = servlet.getCommand(request);
assertEquals(&SELECT...&, command);
public void testGetCommandNotDefined()测试无效的情况,没有定义命令参数
AdminServlet servlet = new AdminServlet();
servlet.getCommand(request);
fail(&Command should not have existed&);
catch (ServletException expected)
assertTrue(true);
能让TestAdminServlet编译通过的最简单的代码
package junitbook.
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
public class AdminServlet extends HttpServlet
public String getCommand(HttpServletRequest request)
throws ServletException
return null;
在你继续其它测试和实现满足测试的最小应用之前,设法运行Cactus测试。虽然是失败的,但是你至少知道为什么会失败。 然后,当你实现测试中的代码时,测试将会成功!
&& -----------------------------------------------------------------------------------------------&&&&
&& -JUnit最佳实践& 记得检验测试在应当失败的时候失败---------------------------------------------------
使用Maven来运行Cactus测试
&&&& 在前面我们已经学习了使用Cactus/Jetty集成,从一个IDE中来进行Cactus测试。这次,我们将学会使用Maven Cactus插件在Tomcat中进行测试。Tomcat是众所周知的servlet/JSP引擎。Maven Cactus插件是运行Cactus测试最容易的方法之一。所有的事物对于使用者来说都是自动和透明的:你的应用文件war文件的“cactus”化、启动你的容器、配置“cactus”化的war,执行Cactus测试,及停止你的容器。(“cactus化”就是自动附加Cactus
jars,并且把Cactus需要的入口附加在你的web.xml文件中)。
&&& 默认情况下,Maven Cactus插件在src/testcactus目录下查找Cactus测试程序。我们也需要将所有的元数据和资源文件放在src/webapp目录下。管理应用程序的web.xml文件如下:
1.0& encoding=&ISO-8859-1&?&
-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&
&http://java.sun.com/dtd/web-app_2_3.dtd&&
AdminServlet
&servlet-class&junitbook.servlets.AdminServletclass&
AdminServlet
/AdminServlet
&&&要用Maven运行Cactus测试,我们还要提供一个有效的project.xml文件,代码如下,关于细节,在前面的笔记中有描述:
1.0& encoding=&ISO-8859-1&?&
junitbook-servlets
JUnit in Action - Unit-testing servlets and filters
Manning Publications Co.
http://www.manning.com/
http://www.manning.com/front/dance.gif
&package&junitbook.servletspackage&
/images/jia.jpg
Chapter 9 shows how to unit test Servlets annd Filters using
both the Mock Object approach and the in-container approach.
It highlights how they complement each other and give
strategies on when to use them.
Chapter 9 of JUnit in Action: Unit-testing servlets and filters
http://sourceforge.net/projects/junitbook/
Vincent Massol
vmassol@users.sourceforge.net
Java Developer
commons-beanutils
commons-beanutils
servletapi
servletapi
mockobjects
mockobjects-core
**/Test*.java
**/Test*All.java
maven-cactus-plugin
首先,定义你要运行时需要的jar文件。你不需要包含Cactus相关jar,因为Maven Cactus插件自动包含这些jar。Maven Cactus插件使用war文件。元素告诉Maven在生产的成品war中包括Commons BeanUtils jars。成品war已被Maven Cactus插件cactus化。注意因为你将会在你的servlet中使用Commons BeanUtils jars,所以必须包含对BeanUtils的依赖关系。包含/排除纯粹的JUnit测试以匹配你想运行的测试。列出生成的报告。
在运行Cactus插件之前,你要通告Cactus插件,Tomcat被安装在你机器哪个位置,这样才能在能在容器中运行Cactus测试。Cactus插件需要你在你的project.properties文件中增加下面的这一行:
&&&&&&&&&& cactus.home.tomcat4x =C:/Apps/jakarta-tomcat-4.1.24
完成Cactus servlet测试
&使得测试通过的getCommand实现
package junitbook.
import java.util.C
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class AdminServlet extends HttpServlet
public static final String COMMAND_PARAM = &command&;
public String getCommand(HttpServletRequest request)
throws ServletException
String command = request.getParameter(COMMAND_PARAM);
if (command == null)
throw new ServletException(&Missing parameter [&
+ COMMAND_PARAM + &]&);
public void callView(HttpServletRequest request)
测试callView方法
在TestAdminServlet中添加如下代码:
private Collection createCommandResult() throws Exception
List results = new ArrayList();
DynaProperty[] props = new DynaProperty[] {
new DynaProperty(&id&, String.class),
new DynaProperty(&responsetime&, Long.class)
BasicDynaClass dynaClass = new BasicDynaClass(&requesttime&,
null, props);
DynaBean request1 = dynaClass.newInstance();
request1.set(&id&, &12345&);
request1.set(&responsetime&, new Long(500));
results.add(request1);
DynaBean request2 = dynaClass.newInstance();
request1.set(&id&, &56789&);
request1.set(&responsetime&, new Long(430));
results.add(request2);
public void testCallView() throws Exception
AdminServlet servlet = new AdminServlet();
// Set the result of the exection of the command in the
// HTTP request so that the JSP page can get the data to
// display
request.setAttribute(&result&, createCommandResult());
servlet.callView(request);
public void beginDoGet(WebRequest request)
request.addParameter(&command&, &SELECT...&);
使得测试通过的callView方法
&&&&&&&& 放到AdminServlet.java中
public void callView(HttpServletRequest request)
public Collection executeCommand(String command)
throws Exception
throw new RuntimeException(&not implemented&);
测试doGet方法&
doGet的单元测试
public void beginDoGet(WebRequest request)
request.addParameter(&command&, &SELECT...&);
public void testDoGet() throws Exception
AdminServlet servlet = new AdminServlet()
public Collection executeCommand(String command)
throws Exception
return createCommandResult();
servlet.doGet(request, response);
// Verify that the result of executing the command has been
// stored in the HTTP request as an attribute that will be
// passed to the JSP page.
Collection results =
(Collection) request.getAttribute(&result&);
assertNotNull(&Failed to get execution results from the &
+ &request&, results);
assertEquals(2, results.size());
使得测试通过的doGet方法
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException
Collection results =
executeCommand(getCommand(request));
request.setAttribute(&result&, results);
catch (Exception e)
throw new ServletException(
&Failed to execute command&, e);
有两点需要注意,首先,对callView的调用在doGet中没有出现;测试也没有要求。其次executeCommand被调用,将抛出RuntimeException异常,当然你也可以返回null,但是抛出异常是个比较好的做法,如果方法被错误的调用,你也就不会感到任何的惊奇。&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 笔记十二是描述使用mock objects测试servlet&
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?今天使用SpringJuint测试经验
今天下午弄了一下juint单元测试,后来百度的时候发现说spring中有一个springJuint来集成juint功能,也支持spring的注解
但是在配置过程中出现了了一个问题,死活报无法实例化类
下面是我的代码片段
@RunWith(SpringJUnit4ClassRunner.class) //指定测试用例的运行器 这里是指定了Junit4
@ContextConfiguration(locations = {"classpath*:/spring-*.xml","classpath*:/spring.xml"}) //配置文件路径 ,可用通配符,注意两个变量之间用逗号隔开
(我就坑在了这里,注意两个配置文件的话需要的是两个字符串,不是一个字符串中写两个)
//如果加入以下代码,所有继承该类的测试类都会遵循该配置,也可以不加,在测试类的方法上///控制事务,参见下一个实例
//这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
//@Transactional
//这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),
//指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!
//@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class UserTest {
@Autowired
private UserS
//标明是测试方法
@Transactional
//标明此方法需使用事务
@Rollback(false)
//标明使用完此方法后事务不回滚,true时为回滚
public void testUpdate(){
User u = new User();
u.setCreateTime(new Date());
u.setName("1231");
u.setAge(1);
service.save(u);
这篇文章主要自己记忆使用
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 ieda 破解 的文章

 

随机推荐