Для меня ни один из них не работал. Решение для меня удаляло следующий файл, в то время как Eclipse был остановлен:
/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/myprojectname/.markers
Итак, основная проблема здесь в том, что у вас есть жесткая зависимость от объекта MessageQueue. Обычно в подобной ситуации я создаю интерфейс, например IQueue, а затем создаю реализацию IQueue для MessageQueue.
Затем вы можете ввести зависимость IQueue с помощью Moq и проверить, работает ли ваш класс должным образом.
Примерно так:
public interface IQueue
{
bool Exists(string path);
MessageQueue Create(string path);
}
Реализация будет примерно такой:
public MessageQueueImplementation : IQueue
{
public bool Exists(string path)
{
return MessageQueue.Exists(path);
}
public MessageQueue Create(string path)
{
return MessageQueue.Create(path);
}
}
Тогда для вашего класса, который зависит от MessageQueue, что-то вроде этого:
public class DependentOnQueue
{
private IQueue queue;
//inject dependency
public DependentOnQueue(IQueue queue)
{
this.queue = queue;
}
public MessageQueue CreateQueue(string path)
{
//implement method that you want to test here
}
}
Теперь вы можете внедрить объект IQueue с помощью moq в этот класс, который зависит от объекта MessageQueue и проверьте его функциональность.