Функция ложной библиотеки не работает должным образом в контексте блока? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть тест ChefSpec ниже, я не уверен, является ли это ошибкой в ​​ChefSpec или нет. Тем не менее, всякий раз, когда я издевался над библиотечной функцией в контексте блока, библиотека насмешки не смоделировала значение для функции и вызывала сбой теста. Странным является тест, пройденный (сработал макет), когда все блоки «it» остались внутри этого блока контекста, но если я добавлю любой другой блок «it» вне этого блока контекста, то mocking не сможет насмехаться над библиотечной функцией и начать входить в них.

Есть ли способ исправить или обойти это? Спасибо

context "when site_tool is not set (default)" do 
            #This mocking block is not working properly inside the context block.
            #If I move everything out of this context block, everything works fine
            # including the mocking library function below. 
            # The error is basically it tried to step into the library function,
            # even though its not supposed to as I have mocked it out 
            # Is there a different way of mocking library function 
            #specifically for outside and inside context block??
            before do 
                allow_any_instance_of(Chef::Recipe)
                    .to receive(:get_service_account_password)
                    .with(site[:app][:permissions][:base_username]) 
                    .and_return("test_password")
            end  

            it 'adds the default app pool' do
            is_expected.to add_iis_pool('DefaultAppPool').with(
                ...
            )
            end
            ## More complicated 'it' blocks below
        end
...