[英]How to mock this method using Mockito
我有這段代碼,我正在嘗試為其編寫單元測試,但我不確定從哪里開始。 這是我到目前為止所做的:
public void statusChange()
if (this.checked && !this.boxChecked) {
this.setBoxChecked(true);
this.setChecked(true);
} else if (!this.checked && this.boxChecked) {
this.setBoxChecked(false);
this.setChecked(false);
}
}
...
@Mock
@Test
public void statusChange() {
// ...
}
我不確定要模擬什么或如何測試該方法。
在這種情況下,您提供使用模擬是沒有意義的,因為您沒有在內部使用任何其他服務/依賴項。 如果您的邏輯依賴於其他組件,則使用 mockito 是有意義的。
但無論如何,如果你想使用 mockito,你可以試試這個:
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
@ExtendWith(MockitoExtension.class)
public class SomeClassMockitoTest {
@InjectMocks
SomeClass someClass;
@Test
void shouldTestSomething() {
// given
// when
someClass.statusChange();
// then
assertSoftly(s -> {
s.assertThat(someClass.isBoxChecked()).isFalse();
s.assertThat(someClass.isChecked()).isFalse();
});
}
}
class SomeClass {
private boolean checked;
private boolean boxChecked;
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public boolean isBoxChecked() {
return boxChecked;
}
public void setBoxChecked(boolean boxChecked) {
this.boxChecked = boxChecked;
}
public void statusChange() {
if (this.checked && !this.boxChecked) {
this.setBoxChecked(true);
this.setChecked(true);
} else if (!this.checked && this.boxChecked) {
this.setBoxChecked(false);
this.setChecked(false);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.