小编Dac*_*ace的帖子

的Mockito; 使用list调用verify方法,忽略列表中元素的顺序

我有一个类(ClassA)来获取目录中的文件.它扫描给定目录中与正则表达式匹配的文件.对于每个匹配的文件,它将文件对象添加到列表中.处理完目录后,它会将文件列表传递给另一个类(ClassB)进行处理

我正在为ClassA编写单元测试,因此使用Mockito模拟ClassB,并将其注入ClassA.然后我想在不同的场景中验证传递给ClassB的列表的内容(即我的模拟)

我已经将代码删除了以下内容

public class ClassA implements Runnable {

    private final ClassB classB;

    public ClassA(final ClassB classB) {
        this.classB = classB;
    }

    public List<File> getFilesFromDirectories() {
        final List<File> newFileList = new ArrayList<File>();
        //        ...
        return newFileList;
    }

    public void run() {
        final List<File> fileList = getFilesFromDirectories();

        if (fileList.isEmpty()) {
            //Log Message
        } else {
            classB.sendEvent(fileList);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试类看起来像这样

    @RunWith(MockitoJUnitRunner.class)
    public class AppTest {

    @Rule
    public TemporaryFolder folder = new TemporaryFolder();

    @Mock
    private ClassB mockClassB;

    private File testFileOne;

    private File …
Run Code Online (Sandbox Code Playgroud)

java junit mocking mockito

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

在Ruby中设置Test Suite

我试图在Ruby中设置一个测试套件来自动测试WebUI(使用Watir)

个别测试都很好,并且运行正常,但我遇到了套件问题.

例如,如果我的一个测试是(其中BaseTestClass扩展Test :: Unit :: TestCase)

class Test3_1_3_1_2 < BaseTestClass
  def testHeightOfMainPanel
    assert(false, 'Not implemented')
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的RunAllTests脚本中,我尝试执行以下操作

require 'test/unit'

Test::Unit.at_start do
  #Lets create our own user for these tests
  createCCUser(User, Password)
end

Test::Unit.at_exit do
  #Delete our own user
  deleteUser(User)
end


Dir["./**/Test*.rb"].each{|s|
  puts s.to_s
  load s
}
Run Code Online (Sandbox Code Playgroud)

基本上我想做的是在测试开始时创建一个新用户,运行测试然后删除用户.这是必要的,因为系统是单点登录(有点),如果我们为每个人使用相同的用户,则无法保证测试将正确执行(即其他人可以同时运行测试,然后是第一个用户将被踢出)

我得到的错误是:未定义的方法at_start' and private methodat_exit'调用

我知道我做错了什么,但对于Ruby来说很新,很难看出它在哪里.基本上我需要的是一种执行某些设置的方法,运行可以找到的所有测试,然后进行清理.每个测试都有自己独立的设置和拆卸方法

我还应补充一点,我尝试了上述相同的许多变化,例如

require 'test/unit'

class Temp < Test::Unit::TestCase
  Test::Unit.at_exit do
    #Delete our own user
    deleteUser(User)
  end


  Test::Unit.at_start do
    #Lets create our own user for these …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing watir

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

Ruby:从2d数组中的每个子数组中获取第n个元素

作为我们Watir测试套件的一部分,我们正在验证数据表.其中一个要求是特定列必须为空(除非选择了特定的单选按钮)所以在我的脚本中,我有以下代码

incidents = browser.table(:xpath, Xpath_CC).strings 
Run Code Online (Sandbox Code Playgroud)

浏览器是watir-webdriver浏览器对象在事件中提供我的这个2d数组

[["DateTime", "Problem", "Value", "Compared", "Number", "Causes", "Where", "Count", "Type"],
["May 07, 02:15 - 02:30", "Web", "38.46 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:15 - 02:30", "Video", "40 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:00 - 02:15", "Email", "30 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing watir watir-webdriver

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

标签 统计

ruby ×2

unit-testing ×2

watir ×2

java ×1

junit ×1

mocking ×1

mockito ×1

watir-webdriver ×1