是否有任何理由自动化专注于GUI(而不是其下的内容)的测试?在我看来,GUI(及其中的变化)应始终由真人测试.
使用自动GUI聚焦测试可以获得什么?我自己的经验是,GUI聚焦测试几乎总是打破,因为有人为了一个很好的理由改变了一些东西.他们似乎很少发现任何有趣的东西.
在*nix python信令允许我在准备好之前停止睡眠.在Windows中是否有任何类似的机制 - 似乎所有方法最终只在睡眠后拦截代码?
代码示例:
from time import sleep
.. do something that will intercept the sleep
try:
sleep(60)
finally:
print 'how to get here under 60 seconds in windows?'
Run Code Online (Sandbox Code Playgroud)
类似的问题没有Windows的答案: 在python中断/中断time.sleep()
我希望能够将一个大型测试分成较小的测试,以便当较小的测试通过时,它们意味着大测试也会通过(因此没有理由进行原始的大测试).我想这样做,因为较小的测试通常花费更少的时间,更少的努力和更少的脆弱.我想知道是否有测试设计模式或验证工具可以帮助我以稳健的方式实现这个测试分裂.
我担心当有人在一组较小的测试中改变某些东西时,较小的测试和原始测试之间的连接就会丢失.另一个担心是,一组较小的测试并没有真正涵盖大考验.
我的目标是一个例子:
//Class under test
class A {
public void setB(B b){ this.b = b; }
public Output process(Input i){
return b.process(doMyProcessing(i));
}
private InputFromA doMyProcessing(Input i){ .. }
..
}
//Another class under test
class B {
public Output process(InputFromA i){ .. }
..
}
//The Big Test
@Test
public void theBigTest(){
A systemUnderTest = createSystemUnderTest(); // <-- expect that this is expensive
Input i = createInput();
Output o = systemUnderTest.process(i); // <-- .. or expect that this …
Run Code Online (Sandbox Code Playgroud) testing automated-tests unit-testing formal-verification formal-methods
>>> list1 = []
>>> list2 = list1
>>> list2 += [1]
>>> print list1
[1]
Run Code Online (Sandbox Code Playgroud)
比较这个
>>> list1 = []
>>> list2 = list1
>>> list2 = list2 + [1]
>>> print list1
[]
Run Code Online (Sandbox Code Playgroud)
有没有理由为什么'+ =' - 操作会修改原始列表?
编辑:只是为了让我的问题更清楚一点
在我所知道的大多数语言中,'+ =' - 运算符不能以这种方式工作,我想知道它为什么在python中以这种方式设计.
一些例子:
红宝石
irb(main):001:0> l = []
irb(main):002:0> a = l
irb(main):003:0> a += [2]
irb(main):004:0> l
=> []
Run Code Online (Sandbox Code Playgroud)
斯卡拉等..
有没有方法将终端格式化输出打印到变量?
print 'a\bb'
--> 'b'
Run Code Online (Sandbox Code Playgroud)
我希望字符串'b'变量 - 所以怎么做?
我正在使用来自telnet的文本字符串.因此,我想使用将打印到屏幕的字符串.
所以我要找的是这样的:
simplify_string('a\bb') ==> 'b'
Run Code Online (Sandbox Code Playgroud)
回车的另一个例子:
simplify_string('aaaaaaa\rbb') ==> 'bbaaaaa'
Run Code Online (Sandbox Code Playgroud) 假设我有Erlang"企业应用程序":
-module(hello).
-export([start/0]).
start() ->
spawn(fun() -> loop() end).
loop() ->
receive
hello ->
io:format("Hello, World!~n"),
loop();
goodbye ->
ok
end.
Run Code Online (Sandbox Code Playgroud)
有没有办法从Python代码运行它?这样我就可以得到"Hello,World!" 文字回到Python?Erlport似乎在反过来工作..
编辑:换句话说,如何从Python绑定到Erlang端口?