我有两个文件
spike.py
class T1(object):
def foo(self, afd):
return "foo"
def get_foo(self):
return self.foo(1)
def bar():
return "bar"
Run Code Online (Sandbox Code Playgroud)
test_spike.py:
from unittest import TestCase
import unittest
from mock import patch, MagicMock
from spike import T1, bar
class TestStuff(TestCase):
@patch('spike.T1.foo', MagicMock(return_value='patched'))
def test_foo(self):
foo = T1().get_foo()
self.assertEqual('patched', foo)
@patch('spike.bar')
def test_bar(self, mock_obj):
mock_obj.return_value = 'patched'
bar = bar()
self.assertEqual('patched', bar)
if __name__ == "__main__":
unittest.main()
Run Code Online (Sandbox Code Playgroud)
当我运行时python test_spike.py,第一个测试用例会通过,但第二个测试用例会失败.然后我切换到使用nosetests test_spike.py,然后两个都失败了.
我不明白这是怎么发生的?这些案件应该通过所有.
module Test
def self.model_method
puts "this is a module method"
end
end
class A
include Test
end
A.model_method
Run Code Online (Sandbox Code Playgroud)
这将是错误的:
A:Class的未定义方法`model_method'(NoMethodError)
但是当我使用A的元类时,它可以工作:
module Test
def model_method
puts "this is a module method"
end
end
class A
class << self
include Test
end
end
A.model_method
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
在我运行此代码之前,我认为它们是相同的:
class B(object):
def show(self):
self.__a = "test"
print "B"
def this_b(self):
print "this_b"
print self.__a
print getattr(self, '__a') #exception
class C(B):
def show(self):
print "C"
# B.show(self)
super(C, self).show()
def call(self):
print "call"
self.show()
self.this_b()
# print self.__a
C().call()
Run Code Online (Sandbox Code Playgroud)
它AttributeError: 'C' object has no attribute '__a'随着getattr声明而提出,但为什么呢?
今天是我第一次尝试Java语言.当我尝试这段代码时,我觉得很奇怪:
int a =500;
System.out.println(System.identityHashCode(500));
System.out.println(System.identityHashCode(500));
System.out.println(System.identityHashCode(a));
System.out.println(System.identityHashCode(a));
Run Code Online (Sandbox Code Playgroud)
所有这些结果都不同.但当我将500改为50时,它会变成相同的结果.
为什么?
我试图删除日志目录中的所有文件,并在CentOS 6.5上使用默认的bash shell
[lei@ids7gueywjZ /]$ sudo ls -al /var/log/jenkins/
total 1541512
drwxr-x--- 2 jenkins jenkins 4096 Jul 22 09:52 .
drwxr-xr-x. 10 root root 4096 Jul 14 21:27 ..
-rw-r--r-- 1 jenkins jenkins 31483 Jul 22 17:07 jenkins.log
-rw-r--r-- 1 jenkins jenkins 1073606656 Jul 18 03:16 jenkins.log-20150718
-rw-r--r-- 1 jenkins jenkins 504815011 Jul 19 03:30 jenkins.log-20150719.gz
[lei@ids7gueywjZ /]$ sudo rm -r /var/log/jenkins/*
rm: cannot remove `/var/log/jenkins/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我不明白为什么rm -r /var/log/jenkins/*不起作用?我缺少一些默认的shell配置吗?
我不明白为什么这段代码会产生这样的顺序?有人可以详细说明吗?我以为Promises就像一个FIFO队列,但是嵌套的Promise函数似乎有点不可预测,或者使用其他数据结构吗?
new Promise(resolve => {
resolve()
})
.then(() => {
new Promise(resolve => {
resolve()
})
.then(() => {
console.log(1)
})
.then(() => {
console.log(2)
})
.then(() => {
console.log(3.1)
})
})
.then(() => {
console.log(1.1)
new Promise((resolve => {
resolve()
}))
.then(() => {
new Promise(resolve => {
resolve()
})
.then(() => {
console.log(4)
})
.then(() => {
console.log(6)
})
}).then(() => {
console.log(5)
})
}).then(() => {
console.log(3)
})
console.log(0)Run Code Online (Sandbox Code Playgroud)
输出:
0
1
1.1
2
3
3.1
4 …Run Code Online (Sandbox Code Playgroud) 我曾经使用String函数将数字转换为字符串,但我发现像1.0的情况,结果是"1",但我期望"1.0".我知道1和1.0在Javascript中基本相同.但是你通常如何修补它以支持我的情况?
更新:请不要误解我的问题,我想保留其他默认行为,String这意味着toFixed不正确的解决方案.例如
1 ==> "1"
1.0 ==> "1.0"
1.00 ==> "1.00"
1.2334 ==> "1.2334"
Run Code Online (Sandbox Code Playgroud) javascript ×2
python ×2
bash ×1
java ×1
memory ×1
mocking ×1
nose ×1
promise ×1
python-2.7 ×1
ruby ×1
shell ×1
sudo ×1
unit-testing ×1
wildcard ×1