tôi có 2 lớp:Làm thế nào phương pháp ghi còn sơ khai với NUnit trong C#
- FirstDeep.cs
SecondDeep.cs
tôi đã mã đơn giản ví dụ:
class FirstDeep
{
public FirstDeep() { }
public string AddA(string str)
{
SecondDeep sd = new SecondDeep();
bool flag = sd.SomethingToDo(str);
if (flag == true)
str = string.Concat(str, "AAA");
else
str = string.Concat(str, "BBB");
return str;
}
}
và
class SecondDeep
{
public bool SomethingToDo(string str)
{
bool flag = false;
if (str.Length < 10)
{
//todo something in DB, and after that flag should be TRUE
}
return flag;
}
}
Sau đó, tôi muốn viết unit test cho phương pháp "Adda":
class Tests
{
[Test]
public void AddATest()
{
string expected = "ABCAAA";
FirstDeep fd = new FirstDeep();
string res = fd.AddA("ABC");
Assert.AreEqual(expected, res);
}
}
Và sau đó tôi gặp khó khăn, tôi không biết làm thế nào đúng ghi stub cho phương pháp SomethingToDo trong class Test của tôi. Tôi luôn luôn có sai. Tôi chỉ nên trả TRUE. Nhưng bằng cách nào?
bạn vẫn có thể làm việc với mẫu của mình: giới thiệu 'bool expected = false; SecondDeep sd = new SecondDeep(); bool actualResult = sd.SomethingToDo ("ABC"); Assert.AreEqual (excpected, actualResult); '...!? nếu điều này không đáp ứng nhu cầu của bạn, bạn có thể xem xét việc xây dựng và cải thiện câu hỏi của mình! –
Bạn đã sửa mã của mình chưa? Nếu nó xảy ra trong cơ sở dữ liệu chúng tôi không thể giúp bạn vì chúng tôi không có chi tiết về những gì đang xảy ra ở đó. – Jon
Có, tôi đã sửa lỗi mã của mình và tôi đã viết: "// cần làm gì đó trong DB và sau cờ đó phải là TRUE" Tôi sử dụng lớp MembershipUser từ .NET và phương pháp này không thể kết nối với DB, đó là lý do tôi nên chỉ trả lại đúng trong trường hợp này. – Smit