Tag: testunit

从测试驱动开发到哪里开始?

我对测试驱动开发比较陌生,我只是想知道我应该从哪里开始? 我理解如何进行测试。 我只是说我应该先测试什么? 这是最好的做法吗? 我应该先测试模型吗? 控制器? 我应该首先编写集成测试,然后从那里构建所有内容以使其通过吗? 对此有何看法?

除非指定了–use-color,否则测试单元将使用控制台而不是tmux生成颜色

如果我创建一个新的Rails(3.2.12)应用程序。 将test-unit gem添加到我的开发,测试组,然后是scaffolded资源。 当我从Mac console.app运行测试时,我得到了颜色输出。 bundle exec rake test 当我为应用程序创建一个tmux会话(在console.app中)并运行完全相同的命令。 我没有得到颜色输出。 但是,如果我通过“–use-color”开关,那么我会在tmux中获得测试的颜色输出。 bundle exec rake test TESTOPTS=”–use-color” 我在我的tmux.config使用set -g default-terminal “screen-256color”设置256种颜色。 当我在没有TESTOPTS的情况下运行rake任务时,我知道为什么我没有在tmux中获得颜色?

Mongoid不和工厂玩得很好

在我的测试中,Moingoid似乎没有持久地设置嵌入式关系。 在我的用户模型中,我有: def vote_on(账单,价值) 如果my_groups = self.groups my_groups.each做| g | bill.votes.create(:value => value,:user_id => self.id,:group_id => g.id) #结果只有工厂:bill.votes.first.group = nil #和bill.votes.first.user = nil !! #self.id和g.id在测试期间有很好的价值,他们只是不坚持 结束 其他 提出“此用户没有群组”## {self.full_name}“ 结束 结束 其他有用的代码可能是: ##账单模型 class比尔 embeds_many:投票 ##投票模型 投票 包括Mongoid :: Document field:value,:type =>符号#可以是:aye,:nay,:abstain #field:group_type,:type => Integer belongs_to:用户 belongs_to:group embedded_in:bill 结束 ## test 测试“描述性记录应该工作”做 user1 = Factory.build(:user) […]

如何编写和inheritanceActionController :: TestCase的抽象子类

我有一堆Rails 3.1控制器,它们都有非常相似的测试要求。 我已经提取出公共代码(所有Test :: Unit样式),例如以下三个测试可以完全重用于所有这些: def create new_record = { field_to_update => new_value } create_params = { :commit => “Create”, :record => new_record } post :create, create_params end test “should_not_create_without_login” do assert_no_difference(count_code) do create; end assert_need_to_log_in end test “should_not_create_without_admin_login” do login_as_non_admin assert_no_difference(count_code) do create; end assert_needs_admin_login end test “should_create” do login_as_admin assert_difference(count_code) do create; end […]

Mocha:具有特定参数的存根方法,但不包含其他参数

我想在给定特定参数值时使用Mocha存根方法,并在给出任何其他值时调用原始方法。 当我这样做时: MyClass.any_instance.stubs(:show?).with(:wanne_show).returns(true) 我得到了 unexpected invocation for MyClass.show?(:other_value) 我也知道,在没有’with’调用的情况下编写模拟时我可以存根所有参数,然后给出我特定的模拟。 但是我必须知道每次通话的返回值,但事实并非如此:/ tldr; 有没有办法在存根中调用原始方法或只存储特定参数并留下其他参数?

Test :: Unit如何测试文件操作和文件内容

我正在寻找一种方法来测试使用带有test_unit的File类的方法。 这与Rspec的问题完全相同,但如何使它与test_unit一起使用。 def foo File.open “filename”, “w” do |file| file.write(“text”) end end 测试将是什么: require ‘test/unit’ def test_foo … end 谢谢你的帮助。

如何对JavaScript响应执行function测试?

我注意到在Rails中渲染js请求的文本是很常见的,其中嵌入了jquery方法调用中的文本以将其插入到DOM中。 // javascript code $.getScript(“/some_url”); // rails partial code, to make things more clear I have added some simple html $(“#some_id”).text(unescape_javascript(‘bar’)) 我的问题是你如何在这样的响应文本的function测试中执行assert_select或等效的? // class FooBarControllerTest < … test "javascript response" do xhr :get, :new // how could I test the div here assert_select "#foo", "bar" // this doesn't work end end **更新了代码,使其更加清晰

使用mocha存根实例变量

假设我有一个直接引用实例变量的方法: class MyClass def method1 puts @instance_var end end 如何在Test::Unit测试中使用mocha来@instance_var的值?

Ruby“test / unit”,如何在断言中显示消息

我在ruby脚本中有断言。 这些断言中的每一个也都有描述断言的消息。 所以我有两个围绕这个问题的问题 我希望在测试过程中显示与每个断言关联的消息。 目前,只有在任何事情失败时才显示消息 当任何断言失败时,整个测试退出。 即使一个断言失败,我如何继续测试? 我正在使用的示例代码 assert_match(“hey”, “hey this is a test”, “The word exists in the string”) 所以输出目前看起来像 – ruby ruby11.rb -vv Loaded suite ruby Started test_ruby(Ruby): F Finished in 40.555587 seconds. 1) Failure: test_ruby11(Ruby11) [ruby11.rb:73]: Text box not displayed is not true. 1 tests, 3 assertions, 1 failures, 0 errors 我希望它看起来像 […]

一个人如何使用Test :: Unit切换使用transactional_fixtures进行一组测试?

我有一些思考 – 狮身人面像测试,我需要关闭事务以防止mysql锁,但这样做我打破了以前编写的许多其他测试,所以我需要能够切换设置。 我发现了关于rspec的类似问题,但没有找到Test :: Unit。 我试过self.use_transactional_fixtures = false这是允许sphinx测试通过的原因,但会导致其他人破坏。 我确信我可以在所有其他测试中将其设置为true,但这也需要所有其他测试包含代码片段,这也是混乱的。 我也尝试过uses_transaction :test_method_name ,但它与前面提到的方法相同。 在此先感谢您的帮助。