小编Dav*_*lla的帖子

在RSpec中组织具有因子组合的测试的最佳方法

我正在创建一些具有各种输入的测试.我正在测试一个购买网站,其中包含新的和返回的用户类型,不同的产品,促销代码,付款选项.我觉得这是一个数据驱动的测试集,可能需要测试输入的csv或电子表格格式.

我一直在使用rspec,它非常适合我创建的最后一个测试集.

我想要一致的结果格式.我坚持如何使用RSpec数据表.有没有人使用RSpec和测试输入表?

提前感谢您提供直接解决方案或合理的建议.

ruby csv rspec

10
推荐指数
2
解决办法
3217
查看次数

在ruby中使用"mail"gem阅读电子邮件需要帮助

我正在使用Watir进行自动化,创建一个我需要检查的电子邮件.我被指向电子邮件gem是最简单的方法.

我添加了以下代码,并能够从我的收件箱中收到第一封电子邮件.

require 'mail' 
require 'openssl'

Mail.defaults do 
  retriever_method :pop3, :address    => "email.someemail.com", 
                          :port       => 995, 
                          :user_name  => 'domain/username', 
                          :password   => 'pwd', 
                          :enable_ssl => true 
end 

puts Mail.first 
Run Code Online (Sandbox Code Playgroud)

我是这个论坛的新手并且有以下问题:

  1. 如何获取所有未读电子邮件?我试过Mail.all,Mail.first,Mail.last,但没有返回未读电子邮件.

  2. 如何获取电子邮件中存在的所有链接?或者从特定电子邮件发送邮件正文?我需要获取第一封未读电子邮件的电子邮件正文.

  3. 如果我的收件箱中有子文件夹,如何从特定文件夹收到电子邮件?

ruby email

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

如果我重新开始,我应该从Watir-WebDriver开始吗?

我的团队有一个使用watir的自动化解决方案.事实上,我们有两个版本,一个用于我们的软件,另一个用于另一个版本.我发现改变版本的watir并不容易,所以我想为我的新项目选择合适的版本(建立一个像Jim Knowlton谈论Watir Podcast#30的探索性框架).

我们的产品支持IE和Firefox.它可以支持将来的其他浏览器,例如Chrome或Safari.虽然我们创建了一个webdriver框架来更好地访问属性,但大多数接口技术都得到了watir的支持.

所以我认为Watir Webdriver可能是我今天最好的选择.没有使用它,甚至没有用它来评论别人的快乐,我只是不确定它是否准备好了.你怎么看?

automated-tests webdriver cross-browser watir

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

Python单元测试中的Mocking数据库连接/未知类型

这里是蟒蛇新手.我的类使用数据库连接来包装一些函数.我已经成功找到了一些基本的例子.对于我正在使用的更复杂的库,我找不到模拟数据库连接的近似示例.在我的,

class DBSAccess():
    def __init__(self, db_con):
        self.db_con = db_con

    def get_db_perm(self, target_user):
      ## this is where I start having trouble
        with self.db_con.cursor() as cursor:
            cursor.execute("SELECT CAST(sum(maxperm) AS bigint) \
            FROM dbc.diskspace \
            WHERE  databasename = '%s' \
            GROUP BY databasename" % (target_user))

            res = cursor.fetchone()
            if res is not None:
                return res[0]
            else:
                msg = target_user + " does not exist"
                return msg
Run Code Online (Sandbox Code Playgroud)

其中db_con是teradata.UdaExec返回连接

udaExec = teradata.UdaExec (appName="whatever", version="1.0", logConsole=True)
db_con = udaExec.connect(method="odbc", system='my_sys', username='my_name', password='my_pswd')
dbc_instance = tdtestpy.DBSaccess (db_con) …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking magicmock

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

"[^"]*"和".+"之间的区别是什么?

在黄瓜步骤定义中使用以下两个语句有什么区别?当我在Rubular中测试它们时,它们都能在我能想象到的所有情况下工作.在第二种情况下,我的语法突出显示更可能看起来很好(没有额外的双引号搞砸了).

即使在Stack Overflow语法高亮显示中,它也会在第一个语言中被搞砸.更常见的第一个例子有什么优点?

Given /^My name is "([^"]*)"$/ do |myname|
Given /^My name is "(.+)"$/ do |myname|
Run Code Online (Sandbox Code Playgroud)

ruby regex cucumber

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

如何避免页面对象被弃用的复选框

我从一年开始使用黄瓜,而且几周之后我就在它中添加了page-object-gem.当我执行测试时,我收到消息:

DEPRECATION WARNING
您正在commentPage.rb中调用一个名为checkbox的方法:23:在`delete in delete_comment'中.
此方法在页面对象中不存在,因此它将传递给驱动程序.
此功能将在不久的将来删除.
请更改您的代码以调用正确的页面对象方法.

(我对其他案例也有同样的看法,但这个"琐碎"的例子应该更容易解释)

我试图避免这种情况,但这看起来很复杂.

对于测试,我正在检查一个页面,其中有一个表格.每行显示一行,我需要检查特定行的复选框.

我在pageObject中的代码:

table(:comment_list, :class => 'comments')
button(:delete, :text => "Delete")

def delete_comment (text)
  self.comment_list_element.each do |row|
    if row.text.include? "#{text}"
      row.checkbox.set
      self.delete
      return true
    end
  end
  false
end
Run Code Online (Sandbox Code Playgroud)

我是否需要对我的桌子进行预处理以在测试期间使用它?

watir watir-webdriver pageobjects page-object-gem

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