小编Leo*_*Shi的帖子

为什么python模拟补丁不起作用?

我有两个文件

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,然后两个都失败了.

我不明白这是怎么发生的?这些案件应该通过所有.

python unit-testing mocking nose

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

为什么模块的"自我"方法不能成为类的单例方法?

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)

有人可以解释一下吗?

ruby

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

python中getattr(self,'__ a')和self .__ a之间有什么区别?

在我运行此代码之前,我认为它们是相同的:

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声明而提出,但为什么呢?

python python-2.7

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

为什么相同的整数值在Java中具有不同的内存地址?

今天是我第一次尝试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时,它会变成相同的结果.

为什么?

java memory

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

为什么通配符在`sudo rm`语句中不起作用?

我试图删除日志目录中的所有文件,并在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配置吗?

bash shell sudo wildcard

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

如何理解此Promise执行顺序?

我不明白为什么这段代码会产生这样的顺序?有人可以详细说明吗?我以为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)

javascript promise

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

javascript如何将数字1.0转换为字符串"1.0"?

我曾经使用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

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

标签 统计

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