标签: testing

如何在RSpec中说"any_instance""should_receive"任意次

我在rails中有一个导入控制器,它将多个带有多条记录的csv文件导入到我的数据库中.我想在RSpec中测试是否使用RSpec实际保存了记录:

<Model>.any_instance.should_receive(:save).at_least(:once)
Run Code Online (Sandbox Code Playgroud)

但是我得到错误说:

The message 'save' was received by <model instance> but has already been received by <another model instance>
Run Code Online (Sandbox Code Playgroud)

一个人为的控制器示例:

rows = CSV.parse(uploaded_file.tempfile, col_sep: "|")

  ActiveRecord::Base.transaction do
    rows.each do |row| 
    mutation = Mutation.new
    row.each_with_index do |value, index| 
      Mutation.send("#{attribute_order[index]}=", value)
    end
  mutation.save          
end
Run Code Online (Sandbox Code Playgroud)

是否可以使用RSpec进行测试或是否有解决方法?

testing rspec ruby-on-rails mocking mocha.js

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

如何配置JPA以在Maven中进行测试

有没有办法在Maven项目中设置第二个persistence.xml文件,以便用于测试而不是用于部署的普通文件?

我尝试将一个persistence.xml放入src/test/resources/META-INF,它被复制到target/test-classes/META-INF中,但似乎是target/classes/META-INF(来自src/main的副本)尽管mvn -X test以正确的顺序列出了类路径条目,但首选资源是首选的:

[DEBUG] Test Classpath :
[DEBUG]   /home/uqpbecke/dev/NetBeansProjects/UserManager/target/test-classes
[DEBUG]   /home/uqpbecke/dev/NetBeansProjects/UserManager/target/classes
[DEBUG]   /home/uqpbecke/.m2/repository/junit/junit/4.5/junit-4.5.jar
...
Run Code Online (Sandbox Code Playgroud)

我希望能够针对简单的hsqldb配置运行测试,而无需更改JPA配置的部署版本,理想情况是在项目结账后直接进行,无需进行本地调整.

java testing integration-testing maven-2 jpa

67
推荐指数
7
解决办法
5万
查看次数

是否有为测试/示例保留的社会安全号码?

是否存在大致相当于example.com的SSN - 广泛(并且官方)仅被认为是示例/测试值的东西?

澄清:根据我的评论,我真正要问的是,如果有一个规范使用的规范"测试SSN",那么所有看到它不是真正的SSN的人都能理解.

testing test-data

67
推荐指数
6
解决办法
10万
查看次数

iPad浏览器模拟器?

如何在Windows中使用浏览器来模拟iPad浏览器?

testing ipad

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

如何使用Capybara确认javascript弹出窗口?

我在网上尝试了几个例子,但没有运气.我期待确认删除链接的确认消息.最后一次尝试是下面的代码,但是导致了Capybara :: NotSupportedByDriverError错误.

def confirm_dialog
  page.evaluate_script('window.confirm = function() { return true; }')
end
Run Code Online (Sandbox Code Playgroud)

testing ruby-on-rails capybara

67
推荐指数
6
解决办法
4万
查看次数

一个mock/stub python模块如何像urllib一样

我需要测试一个需要使用urllib.urlopen在外部服务器上查询页面的函数(它还使用urllib.urlencode).服务器可能已关闭,页面可能会更改; 我不能依靠它进行测试.

控制urllib.urlopen返回的最佳方法是什么?

python testing unit-testing mocking

66
推荐指数
6
解决办法
5万
查看次数

可以使用正确性属性证明/模型检查/验证Haskell函数吗?

继续观念:有没有可证明的现实世界语言?

我不了解你,但我厌倦了编写我无法保证的代码.

在询问了上述问题并得到了非凡的回应之后(谢谢大家!)我决定缩小我对Haskell的可证明,实用的方法的搜索范围.我选择哈斯克尔,因为它是真正有用的(也有许多 网页 框架为它写在纸上,这似乎是一个很好的基准)和我认为这是不够严格,在功能上,它可证明的,或者至少允许不变量的测试.

这就是我想要的(并且一直无法找到)

我想要一个可以查看Haskell函数的框架,添加,用psudocode编写:

add(a, b):
    return a + b
Run Code Online (Sandbox Code Playgroud)

- 并检查某些常量是否保持每个执行状态.我更喜欢一些正式的证据,但是我会满足于像模特检查员这样的东西.
在此示例中,不变量将是给定值a和b,返回值始终是总和a + b.

这是一个简单的例子,但我不认为这样的框架不可能存在.对于可以测试的函数的复杂性肯定会有一个上限(函数的10个字符串输入肯定会花费很长时间!)但这会鼓励更仔细地设计函数,并且与使用其他正式函数没有什么不同方法.想象一下,使用Z或B,当您定义变量/集时,您可以确保为变量提供尽可能小的范围.如果您的INT永远不会超过100,请确保将其初始化为!像这样的技术和正确的问题分解应该 - 我认为 - 允许对像Haskell这样的纯函数语言进行令人满意的检查.

我还没有 - 使用正式方法或Haskell非常有经验.让我知道我的想法是否合理,或者你认为haskell不合适?如果您建议使用其他语言,请确保通过"has-a-web-framework"测试,并阅读原始问题 :-)

testing haskell formal-verification formal-methods functional-programming

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

RSpec stubbed方法可以按顺序返回不同的值吗?

我有一个模型Family,location它有一个合并location其他对象的成员的方法,成员.(成员与家庭有关,但这在这里并不重要.)

例如,给定

  • member_1有location=='圣地亚哥(旅游,5月15日返回)'
  • member_2有location=='圣地亚哥'

Family.location可能会返回'圣地亚哥(member_1旅行,5月15日返回)'细节不重要.

为了简化Family.location的测试,我想要存根Member.location.但是,我需要它返回两个不同的(指定的)值,如上例所示.理想情况下,这些将基于属性member,但只是在序列中返回不同的值就可以了.在RSpec有办法做到这一点吗?

可以在每个测试示例中覆盖Member.location方法,例如

it "when residence is the same" do 
  class Member
    def location
      return {:residence=>'Home', :work=>'his_work'} if self.male?
      return {:residence=>'Home', :work=>'her_work'}
    end
  end
  @family.location[:residence].should == 'Home'
end
Run Code Online (Sandbox Code Playgroud)

但我怀疑这是好习惯.在任何情况下,当RSpec运行一系列示例时,它不会恢复原始类,因此这种覆盖"毒药"后续示例.

那么,有没有办法让stubbed方法在每次调用时返回不同的指定值?

testing rspec ruby-on-rails stub

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

测试电池使用情况

我想测试我的应用程序如何影响手机/平板电脑的电池.

是否有任何测试工具可以让我这样做?

例如,我想测试我的应用程序的哪些模块消耗最多的电池等.

testing android

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

如何测试恐慌?

我正在考虑如何编写测试来检查一段代码是否惊慌失措?我知道Go recover用来捕捉恐慌,但与Java代码不同,你不能真正指定在恐慌或你有什么时应跳过哪些代码.所以,如果我有一个功能:

func f(t *testing.T) {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered in f", r)
        }
    }()
    OtherFunctionThatPanics()
    t.Errorf("The code did not panic")
}
Run Code Online (Sandbox Code Playgroud)

我无法确定是否OtherFunctionThatPanics恐慌,我们是否恢复,或者功能是否完全没有恐慌.如果没有恐慌,如何存在恐慌,如何指定要跳过哪些代码?我如何检查是否有一些恐慌从中恢复过来?

testing go

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