小编jos*_*urs的帖子

我如何在Git中编写预合并挂钩?

问题就是这一切.有没有办法在合并之前执行操作?我猜有一种方法可以使用pre-commit钩子,但我不太确定.

git merge githooks

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

WebElement.clear()对TextBoxes做了什么?

我最近遇到了使用selenium的clear()问题,在测试后期输入文本时调用自定义文本框会导致问题.文本框会检查(JavaScript)browserEvents,特别是keyDown事件.我试着搞清楚clear()看看是否会影响事情,但我似乎无法找到任何具体细节.

Selenium Java绑定的源代码显示clear()不使用键盘或鼠标模拟来清除文本框中的文本.那究竟是什么呢?

selenium webdriver selenium-webdriver

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

为什么这个明显的无限递归没有给出编译器警告?

几个月前,我不得不修复一些导致一些问题的代码.代码看起来基本上是这样的:

int badFun() { return badFun(); }

这显然导致了堆栈溢出,即使在我正在使用的高级语言中(SilkTest中的4Test).这段代码无法被视为有益.问题的第一个迹象是脚本完成后看到的警告,但没有编译错误或警告.奇怪的是,我尝试用C++,C#和Python编写具有相同结构的程序,并且所有这些程序都编译/解释时没有语法错误或警告,即使在所有情况下都存在运行时错误.在任何这些情况下我都没有看到任何警告.为什么默认情况下这不是一个可能的问题?

编辑:我尝试在所有三种语言中编写相应的函数,所以我添加了这些函数标签.我对代码这样的代码没有任何警告的整体原因更感兴趣.如有必要,请重新登记.

c# c++ python compiler-construction recursion

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

什么是"git branch -d"的用例

我今天正在帮助一个同事,发现git branch -Dgit branch -d做了一些不同的事情.从git帮助文档:

-d --delete  delete fully merged branch
-D           delete branch (even if not merged)
Run Code Online (Sandbox Code Playgroud)

我可以欣赏避免任意删除分支,但git如何确定何时branch -d允许?什么时候有人会branch -d正确使用?

git

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

是否可以将参数传递给Enum值?

假设我有一个Enum定义如下:

public enum Sample{
    // suppose AClass.getValue() returns an int
    A(AClass.getValue()), 
    B(AClass.getValue()),
    C(AClass.getValue());

    private int _value; 

    private Sample(int _val){
        this._value = _val; 
    }

    public int getVal(){
        return _value; 
    }
Run Code Online (Sandbox Code Playgroud)

我可以使用Sample.ASample.A.getAVal()不使用问题来提取值。

现在假设AClass.getValue()可以使用一个参数来返回可能不同的特定值,例如AClass.getValue(42)

是否可以将参数传递给公共Enum方法并检索Enum值?换句话说,我可以有一个Enum定义吗

    public enum Sample{
        // suppose AClass.getValue() returns an int
        A(AClass.getAValue()), 
        B(AClass.getBValue()),
        C(AClass.getCValue());

        private int _value; 

        private Sample(int _val){
           this._value = _val; 
        }

        public int getVal(){
            return _value; 
        }

        public int getVal(int a){
            // somehow pull out AClass.getAValue(a)
        }
Run Code Online (Sandbox Code Playgroud)

使用Sample.A.getValue(42) …

java enums

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

什么是Git的一些难以/不可能撤消的行动?

Git的优点之一是,因为它使用指针操作,所以撤消大量任务相对容易,包括删除提交或提交,创建和删除远程分支.在许多情况下,您真正​​需要做的就是将当前分支的HEAD指针正确地重置为所需的位置,然后撤消.这涵盖了各种各样的案例.

除了删除整个存储库或错误推送之外,在标准Git存储库中,无法撤消或极难撤消的最不重要的操作是什么?

git

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

为什么自动GUI工具如此脆弱?

大约一年半的时间里,我一直在使用SilkTest,这是一个GUI自动化工具,适用于桌面和Web应用程序.它模拟鼠标和键盘输入,最终模拟最终用户行为.但是,我发现它有点片状; 连续工作9次的Button.Click()或DialogBox.Close()方法调用似乎在第10次调用时失败,只在11日返回工作.通常情况下,我会用SilkTest(或测试中的应用程序,或操作系统,或者你有什么)来解决这个问题,但后来我发现其他GUI自动化工具(如Selenium)存在类似问题:

Selenium Click()因Anchor Elements而失败

Selenium Click()无法单击按钮对象

我知道对于桌面应用程序,每个GUI控件/对话框都有一个与之关联的标记元素(至少在基于Windows的GUI中),对于网页,还有页面元素的域对象模型层次结构.我的猜测是,这些工具有时会遇到导航这些层次结构并找到独特元素和控件的问题.但是这里发生了什么?SilkTest是一个相对陈旧的商业软件包,而selenium是相对较新的,开源的并且在不断发展.他们俩都有类似问题的事实会给我带来一些旗帜.

另外,这是其他GUI测试工具的情况吗?或者我有一个不寻常的经历?

user-interface automation silktest

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

页面对象应该返回页面对象吗?

我们目前正在努力在我们公司建立一个良好的测试框架。它适用于中型到大型网络应用程序,可能有几十个页面。我们目前主要编写基于 WebDriver Selenium UI 的测试。

我们正在尝试确定一些编码标准,我们正在讨论的一件事是是否使用始终返回PO(即使页面相同)的页面对象(PO​​),仅当您离开当前页面时才返回PO一件新的,甚至不退回 PO。我一直认为返回 PO 是 PO 设计模式的一个关键特性,但我对此可能是错误的。

基本上,我们尝试在以下模式之间做出决定:

class SomePage {
     // constructor
     public SomePage(Driver) { //... } 

     // always return a page object
     public SomePage fillInTextField(String val){
          // details
          return new SomePage(driver);

     // only return a PO if it's a different page
     public void fillInTextField(String val){
          // details
          return;

     }
Run Code Online (Sandbox Code Playgroud)

其中一个比另一个更可取吗?

java webdriver pageobjects

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

可以从Java中该类的枚举中获取类方法吗?

假设我有一个包含Java中枚举的类.是否可以从包含枚举的类中访问方法?举个例子:

public class Foo {

   private string getClassVal() { return "42"; } 

   public string getOtherClassVal() { return "TheAnswer"; } 

   public enum Things {

         ONE("One"), 
         TWO("Two"), 
         THREE("Three"); 

         private String _val; 

         private Things(String val) { _val = val; } 

         // This method is the problem
         public String getSomeVal() {
             return _val + this.getClassVal(); 
         }

         // And this one doesn't work either
         public String getSomeOtherVal() {
             return _val + this.getOtherClassVal(); 
         }

}
Run Code Online (Sandbox Code Playgroud)

我知道带有注释的上述枚举方法不起作用并导致错误,因为上下文中的this内容.我正在寻找的是我可以从枚举中访问"外部"类方法的东西.或者这是正确的方法吗?

这样的事情可能吗?或者枚举是否锁定在外部方法中,即使在课程中也是如此?

java enums

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

单元测试应该在本地机器上运行吗?

最近我的任务是在C#中为桌面应用程序编写和运行单元测试.在过去,我主要编写了自动化功能/ GUI测试.这些可以在专用QA机器上运行,因为这些测试可能会导致崩溃,数据丢失,蓝屏死机等.是否应该为运行单元测试进行类似的设置?在我的本地机器上运行单元测试有任何风险吗?

c# testing unit-testing

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

此代码是否会产生堆栈溢出?

我不小心写了一些代码,其中包含今天看起来的行:

public void fun1(args){
     fun2(args); 
}

public void fun2(args){
     fun1(args);
}
Run Code Online (Sandbox Code Playgroud)

这是在Java中,所以当代码运行时,它会产生堆栈溢出并且代码崩溃.没问题.

但这是基于Java的,我也在其他语言中看到过这种情况(主要是OO或命令式语言).是否有任何语言支持递归,这不会导致堆栈溢出,但可能是不同的错误类型?或者"允许"无限循环无限期运行,也许有足够的内存?

language-agnostic stack-overflow recursion

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