问题列表 - 第3400页

RSpec嘲笑:每个块

我想使用RSpec模拟为块提供固定输入.

红宝石:

class Parser
  attr_accessor :extracted

  def parse(fname)
    File.open(fname).each do |line|
      extracted = line if line =~ /^RCS file: (.*),v$/
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

RSpec的:

describe Parser
  before do
    @parser = Parser.new
    @lines = mock("lines")
    @lines.stub!(:each)
    File.stub!(:open).and_return(@lines)
  end

  it "should extract a filename into extracted" do
    linetext = [ "RCS file: hello,v\n", "bla bla bla\n" ]

    # HELP ME HERE ...
    # the :each should be fed with 'linetext'
    @lines.should_receive(:each)

    @parser.should_receive('extracted=')
    @parser.parse("somefile.txt")
  end
end
Run Code Online (Sandbox Code Playgroud)

这是一种通过将固定数据传递到其中来测试块内部正常工作的方法.但我无法弄清楚如何使用RSpec模拟机制进行实际喂食.

更新:看起来问题不是使用linetext,而是使用:

@parser.should_receive('extracted=')
Run Code Online (Sandbox Code Playgroud)

这不是它的调用方式,用红色代码替换它,self.extracted =有点帮助,但不知何故感觉不对.

ruby rspec mocking rspec-mocks

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

检索字典值最佳实践

我刚刚注意到Dictionary.TryGetValue(TKey key, out TValue value)并且很好奇哪个是从Dictionary中检索值的更好方法.

我传统上做了:

if (myDict.Contains(someKey))
     someVal = myDict[someKey];
     ...
Run Code Online (Sandbox Code Playgroud)

除非我知道它必要在里面.

做的更好:

if (myDict.TryGetValue(somekey, out someVal)
    ...
Run Code Online (Sandbox Code Playgroud)

哪种更好的做法?一个比另一个快吗?我会想象Try版本会慢一些,因为它'swallowing'是一个try/catch本身并将其用作逻辑,不是吗?

.net c# dictionary

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

如何在PHP Shell_exec中正确处理空格?

我通过cmd-line运行win2003服务器,PHP 526.

我有一个cmdline字符串:

$cmd = '  "d:\Prog Files\foo.exe" -p "d:\data path\datadir"  ';  
Run Code Online (Sandbox Code Playgroud)

试图在PHP代码中执行此操作

$out = `$cmd`;       # note use of backticks AKA shell_exec
Run Code Online (Sandbox Code Playgroud)

foo.exe导致失败,因为它将-p arg解释为"d:\ data".

但是,$cdm复制到Windows shell cmdline 的相同字符串会成功执行.

如何在PHP中正确处理空格shell_exec

php shell-exec

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

问题在Python中对BaseException进行子类化

我想创建自己的Python异常类,如下所示:

class MyException(BaseException):
    def __init__(self, errno, address):
        if errno == 10048:
            mess = str(address) + ' is already in use'
        else:
            mess = 'Unable to open ' + str(address)
        BaseException.__init__(mess)
Run Code Online (Sandbox Code Playgroud)

但是当程序接到电话时BaseException.__init__(),我得到了这个追溯:

BaseException.__init__(mess)
TypeError: descriptor '__init__' requires a 'exceptions.BaseException' object but received a 'str'
Run Code Online (Sandbox Code Playgroud)

我认为BaseException将采用任何一组参数.另外,我应该如何将'exceptions.BaseException'对象传递给exceptions.BaseException的构造函数?

python inheritance exception

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

我可以反映.NET基类库(BCL)吗?

BCL

具体来说,我是通过这样打破EULA吗?

.net

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

与boost.asio和文件i/o有什么关系?

我注意到boost.asio有很多涉及套接字,串行端口和各种非文件示例的例子.对于我来说,Google并没有真正提到过很多,因为asio是一个很好或有效的异步文件i/o方法.

我有大量的数据我想异步写入磁盘.这可以通过Windows(我的平台)中的原生重叠io来完成,但我更喜欢拥有独立于平台的解决方案.

我好奇,如果

  1. boost.asio有任何文件支持
  2. boost.asio文件支持已经足够成熟,适用于日常文件i/o
  3. 是否会添加文件支持?这是什么前景?

c++ file-io boost boost-asio

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

ReadOnly vs大会问题/难题中的财产

如何为使用DLL的人在程序集(DLL)之外创建一个属性"ReadOnly",但是仍然能够从程序集中填充该属性以供他们阅读?

例如,如果我有一个Transaction对象需要在Transaction对象中发生某些事情时填充Document对象(它是Transaction类的子类)中的属性,但我只想开发人员使用我的DLL只是能够读取该属性而不是更改它(它应该只在DLL本身内更改).

.net assemblies properties internal

3
推荐指数
2
解决办法
336
查看次数

在SQL中需要有关复杂Join语句的帮助

如何在具有稀疏日期数的表和另一个具有详尽日期数的表之间进行连接,以使稀疏日期之间的间隙采用上一个稀疏日期的值?

说明性示例:

PRICE table (sparse dates):
date        itemid  price
2008-12-04  1       $1
2008-12-11  1       $3
2008-12-15  1       $7


VOLUME table (exhaustive dates):
date         itemid  volume_amt
2008-12-04   1       12345
2008-12-05   1       23456
2008-12-08   1       34567
2008-12-09   1       ...
2008-12-10   1
2008-12-11   1
2008-12-12   1
2008-12-15   1
2008-12-16   1
2008-12-17   1
2008-12-18   1
Run Code Online (Sandbox Code Playgroud)

期望的结果:

date       price  volume_amt
2008-12-04 $1     12345
2008-12-05 $1     23456
2008-12-08 $1     34567
2008-12-09 $1     ...
2008-12-10 $1
2008-12-11 $3
2008-12-12 $3
2008-12-15 $7
2008-12-16 $7
2008-12-17 $7
2008-12-18 …
Run Code Online (Sandbox Code Playgroud)

sql greatest-n-per-group

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

在SQL Server中导入现有的存储过程

我从生产中恢复了我的开发数据库,​​我的生成数据库中不存在我在开发环境中需要的存储过程.是否可以使用命令将developmetn存储过程导入SQL Server.大约有88个文件,因为每个过程都在不同的文本文件中.

TIA!克里斯

sql-server import stored-procedures generate-scripts

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

惯用异步设计

在编写异步API时,我可以使用哪些有用的习惯用法吗?我希望标准化一些东西,因为我似乎总是使用一些不同的样式.似乎很难使异步代码变得简单; 我想这是因为异步操作不过是.

在最基本的层面上,API的用户必须能够:

  1. 在数据可用时将数据推送给他们
  2. 检查异步操作的状态
  3. 收到发生错误的通知
  4. 等待完成(将异步操作转换为同步操作)

我的类支持多个异步操作.我一直在课堂上放置一些状态/错误回调,但是这个类在很多偶然的字段中变得很糟糕,而且变得太大了.我很好奇是否有人使用过他们发现组织良好的异步API.我查看了.NET的Begin/EndAsyncOperation + AsyncResult设计,以及Java中的一些类(例如Future).

这是用Python编写的,因此它仍然非常灵活.有一点需要注意:其中一些异步操作正在被封送到远程机器并在那里执行.因此,并非每个操作都必须在单独的线程中执行.

python asynchronous

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