问题列表 - 第46994页

使用Jasmine重用测试代码的好方法是什么?

我正在使用Jasmine BDD Javascript库并且非常享受它.我有测试代码,我想重用(例如,测试基类的多个实现或在稍微不同的上下文中运行相同的测试),我不知道如何使用Jasmine.我知道我可以将代码从jasmine函数移到可重用的类中,但我喜欢代码读取散布Jasmine函数的方式(描述,它),我不想将规范与测试代码分开,除非我不得不.有没有人使用Jasmine遇到这个问题,你是如何处理它的?

javascript bdd jasmine

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

将git存储库历史记录的一部分移动到另一个存储库中

这里有很多关于将文件夹从一个存储库移动到新存储库的帖子git filter-branch; 我需要做的是将单个文件移动到新的存储库中.

我已经创建了新的存储库,并将文件系统中的旧存储库添加为"远程",并创建了一个新的"根提交"(只需为新的单文件项目添加自述文件).现在我需要移植与此特定文件有关的提交到新的root-commit上.

(我应该提一下,这个文件在任何时候都没有像任何其他文件一样被修改;我怀疑这可能会使这个任务变得更容易.)

git merge repository

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

如何获取c ++ 0x lambda表达式的类型?

我想得到lambda的类型作为模板参数.这该怎么做?

template<class T>
class Foo
{
public:
    Foo(T t){ t(); }
};

int main()
{   
    Foo< type?? > foo([](){ cout<<"construct OK"; });

    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

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

在LaTeX中创建一个多项选择题

我试图在LaTeX中提出一个多项选择题.我是否有点困惑

\begin{question}{MultipleChoice}

是默认情况下LaTeX可以处理的东西,还是我需要额外的包,描述等...(我是LaTex的新手).

话虽如此,如果我运行以下代码,我不会得到一个多选题,而是一个错误,说'lonely\item - 可能缺少一个列表环境.

提前感谢您的时间和耐心!

  %%%% ENVIRONMENT FOR LIST FOR QUESTIONS LIST %%%%
    \newenvironment{questions}{ %   %%%% Begin preliminary environment code
        \begin{list}{ %     %%%% Begin list item label code
            \bfseries\upshape\arabic{qcounter}:
        }{ %    %%%% Begin list item body code
            \usecounter{qcounter}
            \setlength{\labelwidth}{1in}
            \setlength{\leftmargin}{0.25in}
            \setlength{\labelsep}{0.5ex}
            \setlength{\itemsep}{2em}
        } %%%%% End list item body code
    }{        %%%%% Begin wrapup environment code
        \end{list}
    } %%%%% End wrapup environment code

    %%%% ENVIRONMENT FOR A SINGLE QUESTION %%%%
    \newenvironment{question}{\item{}}{}



    \begin{question}{MultipleChoice}
    \qutext{$3\log x-2\log y=$}
    \choice*{$\log\left(\displaystyle\frac{x^3}{y^2}\right)$}
    \choice{$\log(x^3y^2)$}
    \choice{$\log(3x-2y)$} …
Run Code Online (Sandbox Code Playgroud)

latex multiple-choice

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

使用异常消息属性检查特定错误是不好的做法吗?

有时,异常类型足够独特,可以指示确切的问题,例如ArgumentOutOfRangeException.Othertimes,例外情况更为笼统,可能会因为多种原因而被抛出.在这种情况下,似乎在异常消息属性中找到了唯一的附加信息.

在我目前的情况下,我收到一个抛出错误消息的CommunicationException:

已超出传入邮件的最大邮件大小限额(65536)

由于可能通过CommunicationException抛出多个不同的错误,使用message属性确定原因是不好的做法,如下所示:

catch (CommunicationException ex)
{
    if (Regex.IsMatch(ex.Message, "The maximum message size quota for incoming messages .* has been exceeded"))
    {
        // handle thrown exception
    }
    throw;
}
Run Code Online (Sandbox Code Playgroud)

这些消息在所有系统上都是恒定可靠的吗?是否还有其他考虑因素,例如本地化?

结论:

我使用'CommunicationException'的方案是一个糟糕的例子,因为我后来意识到InnerException属性中存在QuotaExceededException.由于回复,我知道要查找异常中存在的任何数据以指出确切原因.在这种情况下,它是InnerException属性.

关于是否应该使用消息属性来确定原因的问题,除非没有替代方案,否则应该避免应该避免的普遍共识.由于本地化,消息属性值可能不会在不同系统上保持不变.

c# exception-handling exception

8
推荐指数
1
解决办法
1085
查看次数

如何访问jar文件中的文件夹内容?

我需要看一下特定包中的文件名.目前,我正在做以下事情:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL packageUrl = loader.getResource(getPackage().replace('.', '/'));
File packageDir = new File(packageUrl.getFile());

// Work with the files inside the directory
Run Code Online (Sandbox Code Playgroud)

这实际上在Eclipse中工作得很好,因为默认情况下它不打包我的应用程序.当我从一个jar文件运行它,但是,我得到一个NullPointerExceptionpackageUrl.

那么,我如何获得jar中包的内容列表?我的研究建议使用getResourceAsStream,但我不太确定如何探索一个目录InputStream,如果可能的话.

java jar classloader

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

如果value = true,则在VBA中追加1 else 0

我不确定这是否可行,但我想我会问,看看是否有人有任何明智的解决方案.

我正在创建一个VBA表单,人们将用它来组装一个SQL字符串:"勾选此框以使此参数成为真"这种东西.

实现这一目标的显而易见的方法是

If Checkbox.Value Then
    string = string + "@parameter = 1, "
Else
    string = string + "@parameter = 0, "
End If
Run Code Online (Sandbox Code Playgroud)

令人烦恼的是,这有点冗长.如果我可以做这样的事情会很好:

string = string + "@parameter = " + Checkbox.value + ", "
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否可行.可能吗?

vba

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

返回内联函数的类型

Cocos2d中的这个方法:

/** Returns opposite of point.
 @return CGPoint
 @since v0.7.2
 */
static inline CGPoint
ccpNeg(const CGPoint v)
{
    return ccp(-v.x, -v.y);
}
Run Code Online (Sandbox Code Playgroud)

内联后为什么会说'CGPoint'?为什么不

static inline ccpNeg(...
Run Code Online (Sandbox Code Playgroud)

c c++ iphone objective-c cocos2d-iphone

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

在python脚本中设置stacksize

我正在将csh脚本转换为python脚本.该脚本调用内存密集型可执行文件,需要非常大的堆栈,因此csh脚本将stacksize设置为unlimited:

limit stacksize unlimited
Run Code Online (Sandbox Code Playgroud)

当我尝试在python中重现这个脚本时,我以一种非常天真的方式执行它们os.system,例如:

os.system('some_executable')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何通过无限制的堆栈大小来告诉操作系统运行这些可执行文件.有没有办法为python脚本中的调用指定stacksize?是否有一些我应该使用的低级系统调用?是否有一个控制它的模块(类似于shutil)?

python stack csh

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

反讽:如何禁止2个代币之间的空格?

我试图在Irony中定义PHP样式的变量,如下所示:

variable.Rule = "$" + identifier;
Run Code Online (Sandbox Code Playgroud)

效果很好,除了你被允许在$和之间放置空格identifier.我想防止这种情况.怎么样?

我是否必须创建一个新的定制终端?如果是这样,我还能利用IdentifierTerminal魔法吗?


IdentifierTerminal我看来,实际上有一个"NameIncludesPrefix"的标志,但它只在一个地方使用.看起来前缀存储在这个CompoundTokenDetails对象中...我不知道如何使用.编辑:没关系,这是一个死胡同.这些标志用于为变量的行为添加修饰符.


这有点......

class VariableTerminal : Terminal
{
    public VariableTerminal(string name) : base(name)
    {
    }

    public override IList<string> GetFirsts()
    {
        return new[] { "$" };
    }

    public override Token TryMatch(ParsingContext context, ISourceStream source)
    {
        if (source.PreviewChar != '$') return null;
        do
        {
            source.PreviewPosition++;
        } while (!source.EOF() && char.IsLetter(source.PreviewChar));

        var token = source.CreateToken(OutputTerminal);
        return token;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不太确定它是什么OuputTerminal..我猜这是基于当前预览位置的某种动态属性?解析在Irony中完成的方式我认为有点奇怪...... …

c# grammar irony

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