2013-04-18 3 views
0

Здесь должно быть что-то простое, но я этого не вижу.Правильное управление контекстом в Ruby mixins

У меня есть модуль под названием генотипа, с классом под названием Генотип:

module Genotyping 

    class Genotype 

И у меня есть класс модульного тестирования, где я пытаюсь сделать некоторую работу с модулем:

require "test/unit" 
require "../genotyping.rb" 

include Genotyping 

class TestGenotyping < Test::Unit::TestCase 

    def test_genotype 
    geno = Genotyping::Genotype.new 

И что я получаю при запуске блока тестового файла является:

2) Error: 
test_genotype(TestGenotyping): 
NameError: uninitialized constant Genotyping::Genotype 

Если я удалить генотипирование :: Qualifer, естественно я получаю:

 1) Error: 
test_breeding_scenario(TestGenotyping): 
NameError: uninitialized constant TestGenotyping::Genotype 

Я взял твердый взгляд вокруг, и не могу сказать, что я делаю неправильно.

+1

Проблема не воспроизводится здесь (ruby 1.9.3p392). Второй запрос требует, чтобы вы использовали 1.8.x. –

+0

Кроме того, не воспроизводится с 2,0 – nicooga

ответ

1

Найдено. Один из классов модулей не был должным образом закрыт, что привело к разным проблемам с областью.

В основном опечатка, хотя и трудно определить. Спасибо всем.

Смежные вопросы