Я работаю над созданием динамического контекстного драйвера для LINQPad для баз данных IBM Db2. Я тестировал большую часть кода, и я думаю, что мне нужно получить всю необходимую информацию о необходимой мне базе данных. (Мне может понадобиться более позднее, но пока это кажется достаточным). Я загрузил git-репозиторий для драйвера контекста PostgreSQL и посмотрел (несколько), как он построен. Мне недостаточно тестов, чтобы чувствовать себя уверенно, что я строю сборку. Но потом я подумал, что если я начну строить эту динамическую сборку, я не знаю, как тестировать диск. Я хотел бы начать просто так:Как протестировать Драйв, построив динамическую сборку
[TestFixture]
public class Db2DynamicAssemblyBuilderTests
{
[Test]
public void DynamicClassHasMatchingNameAsTable()
{
List<Models.Db2TableInformation> tableInformation = new List<Models.Db2TableInformation>();
tableInformation.Add(new Models.Db2TableInformation()
{
Schema = "Schema",
TableName = "TableName"
});
AssemblyName assemblyToBuild = new AssemblyName(@"c:\temp\someassembly.dll");//somehow build this with a dynamic name???? i'll figure this out
string nameSpace = "LINQPad.User";
string typeName = "TypeDataContext";
var target = new Db2DynamicAssemblyBuilder(assemblyToBuild, nameSpace, typeName);
target.Build(tableInformation);
//??? Load assembly?
//Get Class LINQPad.User.Schema.TableName (or maybe just LINQPad.User.TableName...not sure yet)
}
}
так это правильный подход? Так ли я это сделаю?
Я рад, что вы сказали это, потому что я начал идти по этому пути, о котором вы говорите, с LoadFile. Самое приятное в том, что мне не нужно каждый раз удалять сборку (хотя мне, вероятно, теперь нужно, чтобы я подумал об этом), и меня интересует только класс, генерируемый публичными свойствами, поэтому тестирование этой части должно быть тривиальным. –