Как реализовать предварительно скомпилированные заголовки в Ваш проект

Я думаю, что можно получить большую часть выгоды от Модульного теста Разработкой через тестирование / Тест Первая Разработка. Вы должны первый тест записи затем писать код, которые проходят тест. И Что необходимо протестировать сначала?

я нахожу это действительно полезным для тестов записи из пользовательских историй. Большую часть времени я пишу Нисходящие тесты стиля из стартовых пользовательских историй. Например, наша пользовательская история containt такая задача:

  1. то, Когда Пользователь Сохраняют Представление Порядка, Должно Отобразить информационное сообщение.

я обычно тест Записи для этой истории от уровня

  [Test]
    public void When_User_Save_Order_View_Should_Display_Information_Message()
    {
        using (mockRepository.Record())
        {
            repository.Save(order);
            view.Message= "Order saved successfully";
        }

        using (mockRepository.Playback())
        {
            presenter = new OrderSavePresenter(view, orderRepository);
            presenter.Save();
        }
    }

презентации/контроллера И затем я продолжаю к тесту записи на каждого классы, которые я дразнил или нуждался.

24
задан Chris 12 October 2009 в 02:03
поделиться

3 ответа

You stdafx.cpp should include stdafx.h and be built using /Yc"stdafx.h".

Your other *.cpp should be include stdafx.h and be built using /Yu"stdafx.h".

Note the double-quote characters used in the compiler options!

Here's a screenshot of the Visual Studio settings for stdafx.cpp to create a precompiled header:

create precompiled header

Here are the corresponding command-line options (which are read-only but reflect the settings specified on other pages; note that the IDE inserts double-quote characters around the filename, in the compiler option):

options

This is what's in my stdafx.cpp file:

// stdafx.cpp : source file that includes just the standard includes
// CallWinsock.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
37
ответ дан 28 November 2019 в 22:53
поделиться

Your #include "stdafx.h" should be the first line of each cpp file. It shouldn't be used in the .h files. Other than that you're about right.

5
ответ дан 28 November 2019 в 22:53
поделиться

"stdafx" - это просто соглашение. Это ни в коем случае не обязательно. В решении для нескольких проектов я использовал другие настройки с несколькими предварительно скомпилированными заголовками для разных частей. Например, может быть полезно иметь один PCH, совместно используемый вашими проектами пользовательского интерфейса, а другой - для проектов баз данных.

Соответствующими компонентами являются файл Xh, содержащий предварительно компилируемые заголовки, файл X.cpp, который включает только Xh (и не добавляет сам код), и файл X.pch, созданный путем компиляции X.cpp (и, следовательно, Xh) с параметром компилятора / Yc .

Когда вы сейчас компилируете файл Y.cpp с /Yu"X.pch", компилятор читает и отбрасывает все, вплоть до #include "Xh" . В этот момент он заменяет свое внутреннее состояние на состояние, хранящееся в X.pch,

5
ответ дан 28 November 2019 в 22:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: