четверг, 28 июля 2011 г.

Как можно протестировать атомичность данных?

Добрый день.

Хотелось бы узнать у сообщества, какие есть способы для тестирования
атомичности (atomicity) данных в условиях множества асинхронных
запросов. На конкретном примере (orm для redis) я делаю так:

https://github.com/german/redis_orm/blob/master/test/atomicity_test.rb
:

require File.dirname(File.expand_path(__FILE__)) + '/test_helper.rb'

class Article < RedisOrm::Base
property :title, String
property :karma, Integer
end

describe "check atomicity" do
it "should properly increment property's value" do
@article = Article.new :title => "Simple test atomicity with
multiple threads", :karma => 1
@article.save

@threads = []

50.times do |i|
@threads << Thread.new(i) do
@article.update_attribute :karma, (@article.karma + 1)
end
end

@threads.each{|thread| thread.join}

Article.first.karma.should == 51
end
end

Правильно ли это? Какие еще тесты можно добавить?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий