Jestem nowy w Moq i testowaniu jednostkowym. Robiłem test jednostki i to jest następujący kod:Interfejsy testowania jednostek z Moq
private Mock<IServiceAdapter> repository;
[TestInitialize]
public void Initialize()
{
repository= new Mock<IServiceAdapter>();
}
[TestMethod()]
public void SaveTest()
{
//Setup
string Name = "Name1";
string Type = "1";
string parentID = null;
repository.Setup(x => x.Save(Name , Type, parentID)).Returns("Success").Verifiable();
//Do
var result = repository.Object.Save(Name , Type, parentID);
//Assert
repository.Verify();
}
Moim problemem jest to, że test będzie zawsze zwraca ciąg znaków, który włożyłem w parametrze wróci, innymi słowy, będzie to zawsze wrócić „sukces "lub cokolwiek piszę na jego miejscu. Myślę, że to nie jest w porządku, ponieważ nie jest to prawdziwe zachowanie usługi. Czy ktoś wie, w jaki sposób mogę odzwierciedlić rzeczywiste zachowanie usługi "Zapisz", którą próbuję przetestować? Powiedzmy więc, że jeśli zwracany łańcuch różni się od metody serwisowej, test powinien zakończyć się niepowodzeniem.
Edited
Interfejs ServiceAdapter jej po prostu otoki dla usługi sieci Web, które ja nazywam jak REST Service. To projekt Web Forms.
robię coś podobnego w tym poście
należy utworzyć coś w rodzaju FakeController z Dependency Injection, aby to działało?
Coś tu brakuje. Nie mam kontrolera (to są formularze internetowe). Podam więcej informacji w pytaniu. –
@ Kontroler MorganSoren był tylko przykładem. Może to być jakakolwiek inna klasa korzystająca z adaptera usługi. Wydaje mi się, że formularze sieciowe nie są tak testowane w jednostkach, jak to zazwyczaj ma miejsce w przypadku formularzy MVP używanych do tworzenia testowalnych aplikacji internetowych. –
@MorganSoren tutaj jest pytanie dotyczące [formularzy internetowych testów jednostkowych] (http://programmers.stackexchange.com/questions/116089/is-is-possible-to-unit-test-a-web-forms-site) –