问题列表 - 第27926页

针对自动化单元测试的手动单元测试的优缺点是什么?

我能得到的优点和缺点手动单元测试比较的自动化过程.

unit-testing

8
推荐指数
2
解决办法
7774
查看次数

使用PHP将特殊字符转换为ascii

PHP中是否有任何内置函数可以将特殊字符转换为ascii代码?

php ascii html-entities

2
推荐指数
2
解决办法
4504
查看次数

sprintf 何时以及为什么会失败?

我正在使用 swprintf 将字符串构建到缓冲区中(使用循环等)。

const int MaxStringLengthPerCharacter = 10 + 1;
wchar_t* pTmp = pBuffer;
for ( size_t i = 0; i < nNumPlayers ; ++i)
{
    const int nPlayerId = GetPlayer(i);
    const int nWritten = swprintf(pTmp, MaxStringLengthPerCharacter, TEXT("%d,"), nPlayerId);
    assert(nWritten >= 0 );
    pTmp += nWritten;
}

*pTaskPlayers = '\0';
Run Code Online (Sandbox Code Playgroud)

如果在测试期间断言从未命中,我可以确定它永远不会在实时代码中命中吗?也就是说,我是否需要检查 nWritten < 0 并处理它,还是我可以安全地假设不会有问题?

什么情况下可以返回-1?文档或多或少只是说明“如果功能失败”。在一个地方,我读到如果它不能匹配参数(即格式化字符串与可变参数),它将失败,但这并不让我担心。

在这种情况下,我也不担心缓冲区溢出 - 我知道缓冲区足够大。

c c++ printf widestring

6
推荐指数
1
解决办法
4876
查看次数

将变量名传递给 r 中的函数

是否可以在函数调用中仅传递变量名并在函数中使用它?

\n\n

伪代码:

\n\n
q<-function(A){\n    b<-(w%in%A.2|w%in%A.7)  \n    factor(b,levels=c(F,T),labels=c("non-"A,A))}\n\n\nw<-c(0:10)\ne.2<-c(1,2)\ne.7<-c(6,7)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我\xc2\xb4d 喜欢做的是

\n\n
q(e)\n
Run Code Online (Sandbox Code Playgroud)\n\n

并已返回

\n\n

非 e,e,e,非 e,非 e,e,e,非 e,非 e

\n\n

//M

\n\n
\n\n
q<-function(A) {\n    a2<-get(paste(a,".2",sep=""))\n    a7<-get(paste(a,".7",sep=""))\n    b<-(w%in%a2|%in%a7) \n    factor(b,levels=c(F,T),labels=c(paste("non-",a,sep=""),a)) \n}\n\nq("e")\n
Run Code Online (Sandbox Code Playgroud)\n\n

谢谢,

\n\n

中号

\n

variables r function

4
推荐指数
1
解决办法
1万
查看次数

如何将数据传递给将在不同线程中运行的C++ 0x lambda函数?

重要更新:显然我在提出这个问题时得出了错误的结论.感谢我发现的响应,lambda函数[=]()在多线程场景中运行良好.我为提出这个令人困惑的问题而道歉.请投票结束,因为这不是问题.


在我们公司,我们编写了一个库函数,在一个单独的线程中异步调用一个函数.它使用继承和模板魔法的组合工作.客户端代码如下所示:

DemoThread thread;
std::string stringToPassByValue = "The string to pass by value";
AsyncCall(thread, &DemoThread::SomeFunction, stringToPassByValue);
Run Code Online (Sandbox Code Playgroud)

自从引入lambda函数以来,我想将它与lambda函数结合使用.我想写下面的客户端代码:

DemoThread thread;
std::string stringToPassByValue = "The string to pass by value";
AsyncCall(thread, [=]()
{
    const std::string someCopy = stringToPassByValue;
});
Run Code Online (Sandbox Code Playgroud)

更新:与我在提出这个问题时首先相信的情况相反,此代码运行正常.

现在,使用Visual C++ 2010,此代码不起作用.会发生什么stringToPassByValue是不复制.相反,"按值捕获"功能通过引用传递数据.结果是,如果函数在stringToPassByValue超出范围后执行,则应用程序崩溃,因为它的析构函数已经被调用.

所以我想知道:是否可以将数据作为副本传递给lambda函数

注意:一种可能的解决方案是修改我们的框架以传递lambda参数声明列表中的数据,如下所示:

DemoThread thread;
std::string stringToPassByValue = "The string to pass by value";
AsyncCall(thread, [=](const std::string stringPassedByValue)
{
    const std::string someCopy = stringPassedByValue;
}
, stringToPassByValue); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

5
推荐指数
0
解决办法
1544
查看次数

如何使用Strawberry Perl将Perl脚本编译为Windows可执行文件?

使用Strawberry Perl在Windows下编译一个简单的Perl脚本到可执行文件的最简单方法是什么(据我所知,它是可能且免费的)?

在过去,我使用过ActiveState编译器和perl2exe,并且非常简单.但是,现在经过一些计算机更改和操作系统更新后,我已经丢失了许可证,我想找到一个更好/永久的解决方案.

perl strawberry-perl perl2exe

34
推荐指数
3
解决办法
10万
查看次数

如何将双值设置为"非值"

我在一个对象中有两个双数据元素.

有时它们被设置为适当的值,有时则没有.如果没有填写接收它们的值的表单字段,我想将它们设置为某个值,告诉我,在其余代码中,表单字段保留为空.

我不能将值设置为null,因为这会产生错误,是否有某些方法可以使它们"未定义".

PS.我不仅不确定这是否可能,它可能也没有意义.但如果对于这种情况有一些最佳实践,我会热衷于听到它.

java double undefined

25
推荐指数
1
解决办法
4万
查看次数

GCC如何在程序中阻止系统调用?

有人告诉我如何在程序中阻止某些特定的系统调用吗?我正在构建一个系统,它接受一段C源代码,用gcc编译并运行它.出于安全原因,我需要阻止已编译的程序调用某些系统调用.有没有办法做到这一点,从源代码级别(例如剥离gcc的头文件,检测恶意外部调用,......)到可执行级别?

编辑#1:添加有关恶意电话的详细信息.

编辑#2:我的系统是GNU/Linux系统.

编辑#3:

我在几天内尝试了一些方法,这是我到目前为止得出的结论:

  1. 扫描源代码并不能解决主要问题,因为人们总能很好地屏蔽他/她的C源文件.
  2. "覆盖C符号"适用于库,但对于系统调用,我没有达到我想要的效果.这个想法并没有死,但这样做肯定会让我花很多时间黑客攻击(gcc和/或ld).
  3. 许可减少就像魅力一样.我可以使用fakeroot或"访客"用户来执行此操作.这种方法也是最容易实现的.

另一个是本机客户,我还没有尝试,但由于项目和我的工作之间的共同点,我肯定会在不久的将来.

c gcc system-calls

5
推荐指数
3
解决办法
2625
查看次数

如何让MVC动作返回404

我有一个动作,它接受一个用于检索一些数据的字符串.如果此字符串导致没有返回数据(可能因为它已被删除),我想返回404并显示错误页面.

我目前只是使用返回一个特殊视图,该视图显示特定于此操作的友好错误消息,指出未找到该项目.这样可以正常工作,但理想情况下会返回404状态代码,以便搜索引擎知道此内容不再存在,并且可以将其从搜索结果中删除.

最好的方法是什么?

它是否像设置Response.StatusCode = 404一样简单?

error-handling asp.net-mvc http-status-code-404

135
推荐指数
8
解决办法
9万
查看次数

Unix时间戳VS datetime

可能重复:
datetime vs timestamp?

我有一个Mysql表,它有一个列add_date.它跟踪记录添加到数据库的日期/时间.

基于此表的查询:

  1. 显示以下格式添加记录时:2小时前,4周前,1年前等
  2. 允许用户搜索以任何日/月/年插入的记录.因此,可以允许用户选择仅查看2009年插入的记录.

在这种情况下哪个更好 - unix时间戳或日期时间?

现在我正在使用两者,但由于该表随着时间的推移会有数百万条记录,因此两列都可能会影响数据库的大小.

Unix时间戳似乎更适合2 hours在PHP中转换为以前的格式,并且它与时区无关.但是datetime具有更好的可读性,并且对特定日期/时间/年的查询似乎更容易.

你的建议?

php mysql sql

19
推荐指数
3
解决办法
1万
查看次数