Ben harici bir yardımcı programın iki örneğini yönetecek bir uygulama oluşturma veri ve getiriliyor sonuçlarla her ihracatçı duyuyorum. Ders için birim testleri yazıyorum olarakTest Süreci. Başlatma?
Ama bir problem üzerine geldi.
nasıl hedef yöntemi aslında denilen (bir özellik aracılığıyla ayarlanır) bir süreç başlar testi yapmak?
denedim:
- sınıf harici sürecini yürütmek ve sonra başlamıştır olmadığını kontrol etmek GetProcessesByName kullanmaya dikkat edin.
- kullanımı çıkış yönlendirme, ör bir dosyaya bir şey eklemek ve varoluşunu test etmek için daha büyük bir işareti kullanma
Kod yazmak ve/veya test yapmak için başka bir exe oluşturmak gibi hissediyorum.
public void Start()
{
if (!_isRunning) {
var startInfo = new ProcessStartInfo() {
CreateNoWindow = true,
UseShellExecute = true,
FileName = _cmdLine,
Arguments = _args
};
_process = Process.Start(startInfo);
_isRunning = true;
} else {
throw new InvalidOperationException("Process already started");
}
}
istediğim birim test hiçbir şey çalışıyorsa (_isRunning == false), yeni bir süreç çatallanabilir gerektiğini böylece:
Bu kesin yöntemdir.
stumped hissediyorum, harici süreç aslında başladığı birim test zarif bir yolu var mı?
Güzel ... Biraz daha ... alay etrafında Teşekkür Kafamı ... startinfo ayırma parçasını var gözardı! – chakrit
Daha kısa kod için 'public UtilityManager(): this (null) {} public UtilityManager (İşlem süreci)' nü “public UtilityManager” (Process process = null) 'olarak değiştirebilirsiniz. – Bomberlt
@Bomberlt Yansıma yoluyla erişen araçların kullanabileceği bir varsayılan kurucunun mevcut olmasını istemiyorum. – tvanfosson