Я думаю, что можно получить большую часть выгоды от Модульного теста Разработкой через тестирование / Тест Первая Разработка. Вы должны первый тест записи затем писать код, которые проходят тест. И Что необходимо протестировать сначала?
я нахожу это действительно полезным для тестов записи из пользовательских историй. Большую часть времени я пишу Нисходящие тесты стиля из стартовых пользовательских историй. Например, наша пользовательская история containt такая задача:
я обычно тест Записи для этой истории от уровня
[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();
}
}
презентации/контроллера И затем я продолжаю к тесту записи на каждого классы, которые я дразнил или нуждался.
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:
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):
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
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.
"stdafx" - это просто соглашение. Это ни в коем случае не обязательно. В решении для нескольких проектов я использовал другие настройки с несколькими предварительно скомпилированными заголовками для разных частей. Например, может быть полезно иметь один PCH, совместно используемый вашими проектами пользовательского интерфейса, а другой - для проектов баз данных.
Соответствующими компонентами являются файл Xh, содержащий предварительно компилируемые заголовки, файл X.cpp, который включает только Xh (и не добавляет сам код), и файл X.pch, созданный путем компиляции X.cpp (и, следовательно, Xh) с параметром компилятора / Yc
.
Когда вы сейчас компилируете файл Y.cpp с /Yu"X.pch"
, компилятор читает и отбрасывает все, вплоть до #include "Xh"
. В этот момент он заменяет свое внутреннее состояние на состояние, хранящееся в X.pch,