Я пытаюсь смоделировать зависимость от домена, пока тестирую класс обслуживания, используя JMockit.Проблема в том, что объект Domain создается в одном из методов Сервиса, а используемый конструктор Domain имеет параметры.
Класс домена:
package com.example;
public class DomainClass {
String str;
public DomainClass(String s) {
str=s;
}
public String domainMethod() {
return str;
}
}
Класс обслуживания
package com.example;
public class ServiceClass {
public String serviceMethod() {
return new DomainClass("original").domainMethod();
}
}
Как мне смоделировать DomainClass, который использует ServiceClass?
Примечание: я не собираюсь менятьДомен или Сервисные классы.(Я понимаю, что этот код тривиален и его можно написать лучше, но это просто простой пример более сложного кода.)
Тестовый класс (окончательный ответ)
package com.example;
import org.testng.*;
import org.testng.annotations.*;
import mockit.*;
public class TestClass {
@Mocked DomainClass domainClass;
@Test
public void testMethod() {
new Expectations() {{
new DomainClass("original").domainMethod(); result = "dummy";
}};
String ss = new ServiceClass().serviceMethod();
System.out.println(ss);
Assert.assertEquals(ss, "dummy");
}
}