Итак, что вы делаете:
- создание экземпляра команды
- установка атрибутов для него
- вызов
#execute
Это прекрасный способ проверить команду Clamp и, вероятно, лучший способ для модульного тестирования логики вашего #execute
метода.
Если вы хотите проверить синтаксический анализ аргументов командной строки, вы можете использовать метод #parse
и проверить значения атрибутов, например,
before do
@command = MyCommand.new("my")
end
describe "#parse" do
before do
@command.parse(["FOO", "BAR"])
end
it "sets attribute values" do
@command.first.should == "FOO"
@command.second.should == "BAR"
end
end
Но это начинает тестировать сам Clamp, а не ваш собственный код ... так что я, вероятно, не стал бы беспокоиться.
Если вы хотите протестировать как синтаксический анализ, так и выполнение, попробуйте что-то вроде:
describe ".run" do
context "with two arguments" do
it "does something useful" do
MyCommand.run("cmd", ["ARG1", "ARG2"])
# ... test for usefulness
end
end
end
Опять же, то, как вы сейчас тестируете, прекрасно.Я надеюсь, что это помогает.